Back Button Support

Added support to GameState abstract class to Cleanup(). this function
requires a derived gamestate to clean up its state in preperation for
reloading. Imagine loading a screen after logging in, then thinking,
"Ooops, wrong account better go back." This cleanup function enables
that.