Cygwin portability

This adjusts stdafx.h so that the nice new CMake version builds cleanly on Cygwin, which is a little stricter than Linux.  I've also included my patch to make g++ shut up about things like "typedef enum" being unnecessary in C++ and the fact that it wants string literals to be const.

I don't think any of these changes should affect the behavior of the code, and it still seems to build fine in Visual Studio.  I admit haven't tried it on Linux.