Previously, _LIBCPP_ABI_UNSTABLE would be used interchangeably with
_LIBCPP_ABI_VERSION >= 2. This was confusing and creating unnecessary
complexity.
This patch removes _LIBCPP_ABI_UNSTABLE -- instead, the LIBCXX_ABI_UNSTABLE
CMake option will result in the LIBCXX_ABI_VERSION being set to '2', the
current unstable ABI. As a result, in the code, we only have _LIBCPP_ABI_VERSION
to check in order to query the current ABI version.
As a fly-by, this also defines the ABI namespace during CMake configuration
to reduce complexity in config. I believe it was previously done this
way because we used to try to use config_site as seldom as possible.
Now that we always ship a config_site, it doesn't really matter and
I think being explicit about how the library is configured in the config_site
is actually a feature.
Here we fail to actually say what the ABI version is set to when LIBCXX_ABI_UNSTABLE is specified. (The answer, after last week's D118989, is "2".)