Enable all warnings and treat them as errors on msvc