Redo of changes in new branch, plus new fixes.
Numerous changes to make voglcore build on windows. Covert all include guards to #pragma once style. Addition of vogl_port* to assist with porting issues.
Linux fixes to windows porting changes.
Fixed more porting bugs.
- Cmake - Added require_pthreads, which checks that pthreads are available and adds the include path for MSVC builds.
- Cmake - Modified executable suffix  to also include original platform suffix (so that windows still gets .exe)
- Cmake - removed gcc-specific linker warnings for MSVC builds
- Cmake - updated all projects using pthreads to require_pthreads. I think we may need to just set this in the default configuration, since voglcore requires pthreads.
- Cmake - set up default compilation options for MSVC builds: multithreaded compilation, correct runtime usage, always generate PDBs.
- voglcore - Fixed vogl::math::count_leading_zero_bits for MSVC.
- voglcore - Updated console code to use fputs to match linux behavior (using puts was causing all lines to be double spaced)
- voglcore - Added plat_chdir to change the current working directory
- voglcore - Added a NULL exception callback chain for windows (basically implemented vogl_set_exception_callback to just return it's parameter)
- voglcore - Added 'dbghelp.lib' as a required lib on windows for function demangling.
- voglcore - Added plat_fexist, a function to check for the existence only of a file
- voglcore - Fixed behavior in plat_virtual_free on windows to pass flags that windows expects. The fact that there are exactly two flags that are mutually exclusive is dumb.
- voglgen - On windows, just directly include source files for TinyXML.
Merge branch 'mcjohn'

Conflicts:
	src/voglcore/regex/regcomp.c
Fix conflict that somehow didn't get committed previously
+ voglgen - added code to output .inc and .txt files to directories, rather than into the cwd
+ voglcore - Fixed logging code to no longer double space on Windows.
+ voglcore - Added peek operation for files and memory streams
+ voglcore - Fix bug on Windows that caused file to appear to fail to parse correctly (incorrect line ending parsing)
+ voglcore - Now support Unix, Windows and OS9 style line endings.
+ voglgen - cleanup post-build target to actually belong to voglgen_make_inc, which was (I believe) the original intention
+ voglcommon - cleanup of use of naked uint (needs to be qualified with vogl::)
+ voglgen - Removed scoped_path and related logic for writing files.
- It was least code changes, but also easy to accidentally break later.
- Now explicitly pass the path of the output file to appropriate places.
- Fix whitespace differences between files in a few places (removed use of
  binary-mode for writing the files s.t. line-ending translation occurs.)