misc improvements for msvc build. -Werror for msvc!

The overall reason for these changes are to allow for treating compiler warnings as errors (we are already treating lib and linker warnings as errors) on msvc.
Other things included:
Improves code style in some areas which had to be touched to fix warnings.
Enables strictStrings standards conformance.