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)