Improve MSVC compiler, linker flags

This PR improves the compiler and linker flags we use for the four MSVC configurations:

Debug
RelWithDebInfo
Release
MinSizeRel