ScreenState is now very tightly coupled with GameState (1:1).

ScreenState is now an inner class of GameState composed of the
screen to display and the Game State it's associated with. This
ensures only one screen can display at a time and that it's related
to the game's state.