This patch allows the use of LIT's ShTest format in the libc++ test suite. ShTests have the suffix '.sh.cpp'. It also introduces a series of other changes. These changes are:
- More functionality including parsing test metadata has been moved into LIT.
- LibcxxTestFormat now supports multi-part suffixes.
- the CXXCompiler functionality has been used to shrink the size of LibcxxTestFormat.
- The recursive loading of the site config has been turned into libcxx.test.config.loadSiteConfig so it can be used with libc++abi.
- Temporary files are now created in the build directory of libc++. This follows how it is down in ShTest.
- not.py was added as a utility executable that mirrors the functionality of LLVM's not executable.
- The first ShTest test was added under test/libcxx/double_include.sh.cpp