GameStates are now Interfaced

The GameState class has now been interfaced, meaning in order to create
a new usable state, you must create a class that implements IRState.

This should simplify the game state system. In order to change game
states in RGame, an instance of the Game class has now been moved to
RGlobal to modify anywhere in the game state. This adds a new benefit
that the RGame instance is now stored in one place, instead of each
gamestate.