|SOURCE|
[Common::Game]
* Using an instance of GameStateManager to control the state of the game
[Common::GameAttributes]
* The GameAttributes struct is a ham-fisted way to get the renderer, input
  manager, keyboard, and mouse available for the various game states
[Common::GameState]
* Added a definition to the destructor
* Added a GameStateManager parameter to most of the member functions for input
  and rendering purposes
[Common::GameStateManager]
* Push checks for an empty game state stack before trying to save the state of
  the top element in the stack
* std::stack's empty member function is used to check if there are any elements
  in the stack instead of relying on the top element being ZED_NULL
[Common::IntroductionGameState]
* This state is used at the beginning of the game and is the entry point for
  the game state FSM
* Red is drawn as the clear colour and nothing else is performed