Steps towards MSVC compatibility

Add USEMSVC variable to Make.inc for handling different flags and toolchain

Fix LLVM header problem in codegen.cpp due to define on min/max

Use __cpuid intrinsic for msvc instead of inline assembly

Add explicit casts, fixup ifdefs (_WIN32 instead of __WIN32__)