Refactored GameState{Manager,} classes

So that they now work. Most of the code borrowed from
http://gamedevgeek.com/tutorials/managing-game-states-in-c/