|SOURCE|
[Common::GameStateManager]
* This class manages the complete lifecycle of a GameState (with the exception
  of creating and destroying instances of them)
* Game states are registered and invoked by using their name
* States will be pushed on and off a stack of game states
* The top-most game state will be processed while those below (if the game
  state is modular) are stalled until the top state is popped
|SOURCE|
[Common::GameState]
* Execute has been replaced with Update and Render, removing the need to
  redundantly call Update and Render inside derived classes Execute
* Update will be responsible for managing the game logic
* Render will draw on screen as fast as possible
[Common::GameStateManager]
* Added a boolean to keep track of whether the game state manager is still
  running
* Added a unsigned 64-bit integer to keep the initial time from the inception
  of the game state manager for figuring out the time difference to send to the
  game state stack's Update member funciton
* Execute gets the time difference and passes it back to the top-most game
  state on the stack, this only allows for a modal style of stacking, whereby
  the state on the top is the only one processed
* Quit pops off all the existing states and indicates that the game state
  manager is no longer running
* Running returns whether or not the game state manager is still operating
[Common::Game]
* The GameStateManager is initialised and run under Execute