This commit allows specifying LIBCXX_ENABLE_PARALLEL_ALGORITHMS when configuring libc++ in CMake. When that option is enabled, libc++ will assume that the PSTL can be found somewhere on the CMake module path, and it will provide the C++17 parallel algorithms based on the PSTL (that is assumed to be available).
The commit also adds support for running the PSTL tests as part of the libc++ test suite.
This causes *everyone* by default to generate a __config_site header.
The philosophy behind __config_site is that it should only be generated for exceptional cases, and that __config should be enough to correctly configure libc++ by default.
So this change is contrary to that design.
I think we should either invert this condition (so PSTL builds are special), or find a wholly different approach to this.