Initial work on the game branch

|BUILD CONFIGURATION|
[Common]
* Added the Game library Makefile
[Linux]
* Added the Game library Makefile

|SOURCE|
[Common/Game/GameState]
* The GameState class is a base class which is intended for major states to
  derive from, such as the gameplay and main menu states
* States are intended to be entered, executes, then exited
* All states have to provide a name to identify themselves by
* Each state has its own EventRouter instance
Added a GameStateManager to register and push/pop states

|SOURCE|
[Common/Game/GameStateManager]
* This class is responsible for registering and pushing/popping game states
* When a game state is pushed onto the stack, the one underneath does not
  respond to any more events (this should be a setting for whether the state
  should be updated and modal or not)
* Registering a state allows the user to recall the state's name for pushing
  the state onto the stack at a later time
* The total elapsed time since the game state manager was started can be
  retrieved as either an unsigned 64-bit integer or a 64-bit float (seconds in
  decimal format for float, microseconds with the integer)
Added an input listener for game state events
Added general-purpose events

|SOURCE|
[Common/Game/GaemStateInputListener]
* This converts key presses, mouse movements, and other events into events
  which are more appropriate for a game to handle
* Details of input devices are abstracted, keys or buttons are converted to IDs
  and floating-point values to interpret as the game requires
[Common/Game/GameStateManager]
* A GameStateInputListener is used to bind input commands with action IDs
* An InputBinder may be set, which is associated with the
  GameStateInputListener, this is used to associate action IDs with input
  controls
[Common/Utility/Events]
* Keyboard and Action event data and events are defined
* Keyboard events carry keyboard data, which consists of the key and it's state
  (up or down)
* Action events carry action IDs and a value ranging from -1.0f to 1.0f
Merge branch 'unstable' into game