Enable W4 warning level on MSVC. fix all (all-but-two) warnings.