some headers are not self-contained, as they depend on symbols from headers which aren't included
- Enhance CMakeLists.txt files. - Move to Boost Test from Google Test to support pre-C++11 compilers. - Add more configurations on CI matrix builds. - Other minor fixes
Added `std::optional` and `std::string_view` adaptors.