Adds basic --config=clang-cl to set up the basic options needed, and
then fix a number of issues that surface in Windows builds for me.
With these fixes, //llvm/... builds cleanly. One unittest still fails,
but its just due to running out of stack space due to creating a large
number of short-lived stack variables. The test should probably be
decomposed into a set of tests (LegalizerInfoTest::RuleSets), but that
seemed like too invasive of a change here and with everything building
cleanly this isn't disrupting me experimenting with Windows builds.
Is it actually these files that need dl? Previously we decided it was better to add it the root library that used it. We're already setting it in llvm:Support, which this depends on, so I don't think this should be necessary (https://github.com/llvm/llvm-project/blob/0eed292fbae22a8856682b07e1cb968424b49941/utils/bazel/llvm-project-overlay/llvm/BUILD.bazel#L211)