CompilerId: Improve detection of C++ default standard level
Some compilers do not always define __cplusplus
and/or _MSVC_LANG
to a value reflecting the C++ standard level, but do define feature macros we can use to distinguish them. See individual commit messages for details.