Add initial support to enable use of /MT, /MTd and /MDd when building
and testing libc++ on Windows. For the shared DLL version of libc++
always use the DLL runtime because this is the sensible choice to avoid
runtime issues.
libc++ now depends on c++experimental and therefore the MSVC libc++ DLL
requires a c++experimental DLL. Because of the cyclic dependencies
between these, a "stub" c++experimental DLL is built to create an import
lib which enables the libc++ DLL to be built first. Building of a
c++experimental DLL must be enabled with LIBCXX_ENABLE_EXPERIMENTAL_DLL
and is disabled by default.
Testing on Windows with int128 support requires compiler-rt builtins.
For testing with the debug runtimes, the CRT debug report mode must be
set to output to stderr to avoid the interactive pop-up dialog from
stalling the testing.
You'd want to match for - in addition to / for the character starting the option; -MD works just as well as /MD.