Issue #21, #22 and #23

Embed the debug state directly into the game state, Move abstract parts to a separate project and Move all SpriteBatch Begin and End calls to the game state manager

Also fixes two bugs where you could go off select in the configuration screen and exiting the test state would exit the game.
The debug state now shows all currently running game states.