MSVC fix CMake Awk detection script

Previously AWK_BIN is set unconditionally.
The call to FIND_PACKAGE_HANDLE_STANDARD_ARGS(AWK DEFAULT_MSG AWK_BIN)
thus always succeeds.
Now the two Awk path checks are performed, setting AWK_BIN
if at least one passes.
MSVC fix glext.h include

Spring sticks glext.h into include/GL together with gl.h and glu.h.
The gl.h and glu.h are vendor supplied files: Microsoft will want theirs
not the Spring ones (Which seems to be from Mesa).
glext.h is Khronos supplied: The Spring copy (Which indeed seems to be
from Khronos) is fine for everyone.

This commit sticks glext.h into a separate directory
include/GLextKhronos/GL. This way it can be added to
the include path separately from the Mesa GL headers.
MSVC fix DevIL header inclusion

The FindDevIL.cmake module distributed with Win32 CMake 2.8.11
sets IL_INCLUDE_DIR. But the variable added to INCLUDE_DIRECTORIES
is DEVIL_INCLUDE_DIR.

Add IL_INCLUDE_DIR to INCLUDE_DIRECTORIES.
DEVIL_INCLUDE_DIR might work on some other platforms so leave it in.
MSVC FOPEN_S DOESN'T EVEN HAVE THE SAME SIGNATURE AS FOPEN YOU CLOWN
I KNOW WHO YOU ARE WELL I DON'T BUT WHAT EVER
MSVC compensate for lack of stdbool.h (C99).

Spring actually includes suitable replacement - rts/System/booldefines.h.
Header rts/System/maindefines.h conditionally includes the right bool.
Replace stdbool.h inclusions by rts/System/maindefines.h.
MSVC follow GL header inclusion convention

The MSVC supplied GL headers require windows.h included beforehand.
For some (To me unknown) reason, there were #define _GDI32_ stuck
before some inclusions.
Dey mit b important so leave them in. Even add one - In front of an
inclusion in rts/lib/headerlessStubs/glstub.c where there were none.
MSVC fix weird syntax errors in headlessStubs.

If you can't tell why the changes fix stuff this makes two of us.
By the way, MSDN has the __stdcall (The value APIENTRY gets)
syntax listen as "returntype __stdcall functionname", I guess
"GLubyte __stdcall * glGetString" cuts the returntype in half.

http://msdn.microsoft.com/en-us/library/zxk0tw93%28v=vs.110%29.aspx
MSVC fix multiple symbol definition errors

Phantom fix - The code fails on MSVC, works everywhere else.

Some template functions are marked static.
They are then attempted to be specialized (To type boost::int64_t),
but the specialized definitions are not marked static.
I assume presence/lack of static makes functions count as distinct.
Instead of a specialization you get two different functions (Same name),
hence multiple symbol definitions.
MSVC remove non-supported C++0x (Read: Coocks) construct, constexpr

As that would make for a function definition in a header, mark it static.
Since static means same as in C (File-scope definition), the
one-definition-rule is not violated.
MSVC remove non-supported C++0x construct, what ever the heck this is
MSVC fix zero length array GCCism
MSVC fix GCCism

C99 style VLA is now dynamically allocated.
MSVC fix non-supported C++0x construct, aggregate initializer

IIRC this is a revert - newCellCoors used to be initialized this way.
MSVC fix vroom vroom optimized low level GCCism builtins

We want __builtin_sqrtf for GCC. MSVC lacks it.
There we want streflop::sqrt or just sqrt depending
on whether compiling with streflop.

The streflop detection define is very magic, so instead of
placing ifdefs at the one __builtin_sqrtf call site, they
are stuck into streflop_cond.h - To ensure the magic streflop
detection define is used only in streflop_cond.h.
Should be much less error prone.
MSVC fix missing include (<limits>)
MSVC fix missing include (System/creg/creg_cond.h)
MSVC fix CMake conditional TARGET_LINK_LIBRARIES for springserver-static

The two Spring windows platforms are "MINGW OR MSVC".
"WIN32" can sort of be used as the condition - But according
to cmake documentation, WIN32 is also defined for Cygwin WTF.
MSVC convert C written files (SimpleLog.c, Util.c) into C89

MSVC does not support C99. A fun part of C89 is that variables
must be defined at the start of a block. Heed el standard.

This is a lengthier diff. As I discovered I made at least one error
before creating this patchset, I went triplechecking to make sure
the code is functionally equivalent. Of course I may still be wrong.
MSVC fix the uhhh see comment in rts/builds/headless/CMakeLists.txt
uhhh no actually don't see it JUST PASS THE REVIEW THIS IS NEEDED.
MSVC use CMake compiler /vmg flag (Needed), /MP flag (Is nice)

This is not new functionality - But the previously used CMake
flag adding snippet: Affects only engine-legacy.
                     Fails to do the right thing for Debug configuration.

/vmg is required because of Undefined Behaviour in creg.
Member function pointers of different types are casted.

/MP enables compilation spawning multiple processes simultaneously.
Probably closest to "make -j" jobs Make option. Time savings on
quad core i7 are mega giga.