Use the CMake WriteCompilerDetectionHeader module to add generate a
header with compatibility macros.
- For static constants, use `const` instead of `constexpr`
- Drop `noexcept` if not supported by the compiler
- Use ASCII string literals if unicode literals are not supported
and replace unicode opening/closing single quotes with ASCII
backticks.