Pedantic Visual Studio build (/W4 /WX) (#4214)

* Pedantic Visual Studio build (/W4 /WX)

* Pedantic Visual Studio build (/W4 /WX)

* Pedantic Visual Studio build (/W4 /WX)

* Remove /wd4512 from CMakeLists.txt

* Suppress Visual Studio 4512 warning ('class' : assignment operator could not be generated)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index bc71610..affa05b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -144,8 +144,8 @@
     "${CMAKE_CXX_FLAGS} -fsigned-char")
 
 elseif(MSVC)
-  # warning C4512: assignment operator could not be generated
-  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4512")
+  # Visual Studio pedantic build settings
+  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4 /WX")
 endif()
 
 if(FLATBUFFERS_CODE_COVERAGE)