Add GameMode enum and PlayerGameModeChangeEvent

I was planning to add a static getByID() method, that's the only reason.