|SOURCE|
[Common::GameState]
* Fixed the return value of GetName to be a pointer to ZED_CHAR8 instead of the
  type ZED_CHAR8
[Common::GameStateManager]
* m_GameStateRegistry changed to a std::set, as the values will all be unique
* RegisterState adds the passed in GameState to the set of GameStates held in
  m_GameStateRegistry
* GetNumberOfStates returns the number of possible states allowed
* GetStateName returns a null string if the index passed in exceeds the amount
  of game states available, otherwise it will return the desired game state's
  name
|SOURCE|
[Common::GameStateManager]
* Added a private member function, IsGameStateNameValid, which iterates over
  the registry of game states, checking if the game state name passed in
  matches any in the registry, returning ZED_FALSE if nothing was found,
  ZED_TRUE, otherwise
* ChangeState pops the top state off the stack and replaces it with the
  requested one if it is valid
* PushState determines if a state's name is valid, if it is then its Enter
  function is called, if that fails, the funciton pops the top game
  state off the stack and returns ZED_FAIL, otherwise it will return ZED_OK
* PopState pops the top-most state off the stack
|BUILD CONFIGURATION|
[Linux]
* Added the ZED Utility library to the list of libraries to link against

|SOURCE|
[Common::GameStateEvents]
* GameStateInputListener
  * This class listens for all input messages and converts them into their
    respective action IDs
[Common::GameStateManager]
* Added an input binder, which will be used later for game states to set up
  their action IDs
|SOURCE|
[Common::Events]
* Events for the keyboard input and action aliasing are contained in the header
  and source files
* KeyboardInputEventData holds the key presses and their state
* ActionInputEventData holds the action's ID and value
* ActionInputEventData::SetAction clamps the value passed in to the range of
  -1.0f to 1.0f
* KeyboardEvent allows for the keyboard data to be shuffled around
* ActionEvent allows for the aciton ID data to be shuffled around
[Common::GameStateEvents]
* GameStateInputListener
  * HandleEvent takes in keyboard input data and converts it into an action ID
    and the corresponding value
|SOURCE|
[Common::Game]
* Removed Update and Render, as the GameState classes handle that
[Common::GameplayGameState]
* Stubbed-out the member functions from GameState
|SOURCE|
[Common::Actions]
* Added action constant STATE_EXIT to indicate a state has finished
[Common::GameStateManager]
* Added GetRenderer and SetRenderer to allow the use of a ZED Renderer for game
  states
* Added SetInputBinder which will be used by the game state manager to
  associate input with actions
* Removed deleting the InputBinder in the destructor as that is not handled by
  this class
[Common::GameplayGameState]
* Bound the escape key to STATE_EXIT
* Render just sets the clear colour to green and renders that
[Common::Game]
* The key combination Ctrl+Escape will completely quit out the game
* GameStateManager is initialised and the GameplayGameState is registered with
  it
* The GameplayGameState is invoked and will run until the force quit key
  combination is struck
|SOURCE|
[Common::GameState]
* Moved the InputBinder and EventRouter from GameplayGameState into this class
  as derived classes will be using it as well
* GetEventRouter added to retrieve the event router associated with the derived
  state
[Common::GameStateManager]
* Added a GameStateInputListener which is added to the top-most state's event
  router, this is for listening for keyboard events
[Common::GameplayEvents]
* GameplayInputListener will respond to ActionInputEvents, re-interpreting them
  for gameplay
[Common::GameplayGameState]
* GameplayInputListener is added to the list of listeners for the event router
[Common::Game]
* Keyboard state is tracked and sent to the global event listener (which should
  be the top-most game state)
|SOURCE|
[Common::GameStateManager]
* Removed the InputBinder as the game states are handling input binding