modify headers to allow inclusion in C++ programs (incomplete)

Modify headers to allow inclusion in C++ programs. Note that the
functions are not marked extern C for now.
add header compilation testing C++ files

Add header compilation testing C++ files. These must emit no errors
and no warnings when compiled by gcc.
bug.h: C++ does not permit declaring structs in sizeof()
rbtree.h: C99 designated initializers do not work in C++
compiler.h: __builtin_types_compatible_p() not available in C++
Makefile: integrate header compilation testing C++ files