Fixed some minor compiler warnings
Laid the framework for events

Added a keyboard event system for keyboard input.

Created a event handler for the GLSixDOFView. This event handler is a
controller as it controls the camera movement through calls to
OpenGLSystem.
Added keyboard event system and static delta time to IOpSys

IOpSys now has a static member that stores the current delta time. This
is accessible in any part of the code by including IOpSys.h.

Also IOpSys now has a keyboard event system. This is used by the various
OpSyss for keyboard events.
Implemented the camera controller

The camera controller is now implemented. The current method though is
lacking in smooth movement, and is borked when pressing a second key.
The behavior is correct and not a bug. What is needed is a physics
system to apply a movement on update and the event system will then need
to add or remove a constant force instead of adding a constant movement
each event.
Moved SDLSys and win32 into src/OS

The various OS specific files are now in their own folders.

Also SDLSys now implements a stub method for KeyDown to make it a
concrete type.
main.cpp reflects the move of the OS files
Made CMake more per-platform

The CMake files now change the including source and libraries based on
the OS choice.
Made GLSPrite aware of SDL and SOIL

GLSprite now uses the appropriate library to load images.
Improved GetComponent in OpenGLSystem

GetComponent now takes a component ID as well.

Also removed some uneeded items.
Added fullscreen toggle.

Fullscreen mode can now be toggled in IOpSys. It is currently only
implemented in win32 and SDL needs to still implement it.

Also CreateGraphicsWindow now takes window width and height parameters.
Adjusted GetWindowWidth/Height to return unsigned

GetWindowWidth/Height now return an unsigned value.

Implemented the win32 methods.
Fixed window width and height

Window width and height are not set to the desktop width and height for
fullscreen.

GetWindowWidth/Height also returns the current value depending on
fullscreen or windowed.
OpenGLSystem has viewport resizing

The viewport can now be resized to allow for runtime changes to render
screen size such as changing to full screen mode.

Also aspect ratio is now calculated using windowWidth/height.
Finished implementing component ID
Fixed fullscreen for multi-monitor

Fullscreen now works correctly with multiple monitors. It will
fullscreen to the monitor that most contains the window.

Additionally on calls to ToggleFullscreen the current window position
and size are saved. Also prevented resizing.
Merged upstream