move scene management out of EngineWindow and into GameState