Add GameMode enum and PlayerGameModeChangeEvent

Could be very interesting ! I'm voting for this.
And maybe too WorldGameModeChangeEvent ?

If others agree I'll evolve the PR.