|SOURCE|
[Common::GameState]
* GameState is intened to be inherited from and used to transition from one
  stage of the program to the next, such as from the introduction sequence to
  the main menu
[Common::GameStateManager]
* Allows for changing one game state for another or creating a stack of states
  to allow for transitions from the main menu, to the game, to the pause menu
  and back to the game.
* Input is handled within the game state manager and passed down to the various
  states
[Common::GameplayGameState]
* All gameplay-related interactions are handled by this state