Added API for displaying particle effects.

Particle effects can be played to individual players and players near a
location. The Particle enum defines the available particle effects.
Particles can be displayed in groups with a spread, and some particles
make use of a MaterialData or an extra data float, which defines speed or
some other property of the generated particles.
Tell the player that their game mode was changed

Resolves https://github.com/GlowstoneMC/Glowstone/issues/397