Enable building libFuzzer with MSVC.
Make the following changes to allow this:
- Don't try to include <endian.h> in FuzzerSHA1.cpp. MSVC doesn't have this header, and WINDOWS is always little endian (even on ARM)
- Remove unneeded cast.
- Account for long being 32 bit on x86 Windows to avoid
warnings.
- Use /Ehsc to silence warnings.
- Don't use macros to redefine thread_local since MSVC
complains about it, and it isn't necessary in Windows builds.
Are you sure we want to enable exceptional destructor cleanups in libfuzzer targets? I don't think it will hurt, but what warnings are we hitting? Does libfuzzer actually use try/catch? If so, yes, this makes sense.