This can technically be split into different commits.
I just wanted to get a review of them together to move things along
The first part is the same as what is in D33384 so once that is reviewed and accepted this should be approved also.
The change to the CMakeLists.txt is so that we get libc++ and not liblibc++ for mingw which is silly.
I am open to an alternative way to achieve this if this isn't a good solution.
Lastly is a header include fixup, mingw from linux doesn't like <Windows.h>
Throughout all llvm projects we use a lowercase w because of this, see rL302340 for reference.