Build: includes: C++ compatibility and consistent protection #defines (#2618)
Include a test in "make check" that makes sure all headers can
be included in their own, have unique and consistent #define
to protect them, and that they work wth C++ code