Updating Block event with reference to Voxel

Updated `BlockEvent` with `Voxel getVoxel()` for block/position. I'm debating
renaming the events to `VoxelEvent` but that may be too different from
what devs are accustomed to.
Add GameMode enum and PlayerGameModeChangeEvent