Add GameMode enum and PlayerGameModeChangeEvent

Why not. It could be useful.