Add GameMode enum and PlayerGameModeChangeEvent

Shouldn't there be a setNewGameMode(); to go with this?