Add C++ XS tests
Add C++ XS docs
Refactor have_compiler and have_cplusplus