SuperGame and GameState merged

I've basically just copied the methods and properties from SuperGame to
GameState.
I'm just about to start changing the methods itself, and I thought I
should commit this separately so we can just roll it back if something
blows up in my face