state callbacks now receive game object as argument

I've made the game state callbacks receive the current game as an argument.

This means states can will be a lot more self contained (scope wise) without having to reply on closures.

It will allow for things like a state being shared between two game instances on the same page.