Add Entity/Player interfaces

First steps in entity/player interfaces - returning the UUID for all, and last
known name/display name for the Player.

`Entity` -> `LivingEntity` -> `HumanEntity` -> `Player`
World/Chunk load/unload events

Adds abstract classes for `World`/`Chunk` load and unload events.
Adding BlockEvent abstract class

Adding a base `BlockEvent` interface.
Add Contribution Guidlines link to README
`HumanEntity` properly extendeds `LivingEntity`

We somehow missed this in the last PR.
`getChunk` clarifications, `loadChunk` method

Based on @mikeprimm feedback on c34d11d0, renaming chunk coordinates in method sig to `cx`, etc.

Clarifying that `getChunk` returns null if it's not loaded.

Adding a `loadChunk` method, with optional bool to disable generating.
Add Voxel class

Got to merge that math branch…
Extracting base event "types" into interfaces

`BlockEvent` interface may be combined with any other event interface
rather than limiting child classes to being of one type.

Modifying state events to match the new structure.
Add JSR 305 for @nullable support
Initial commit of Vector{3/2}{i/f/d} interfaces

Based on flow-math stuff
Document the Vector classes
We now have vector classes, use these instead of adding location classes
Cleanup/Enforce Game object on Event

Signed-off-by: Chris Sanders <zidane@outlook.com>
Add simple GameRegistry interface

Remove un-needed exception
Add getting an identifier by obj

Signed-off-by: Chris Sanders <zidane@outlook.com>
Adding entity/player event interfaces

Adding a base event interface for both `Entity` and `Player`
Ignore .nb-gradle folder
Add collection of online players, max number of players, and a getPlayer method to `Game`
Add Damageable class with basic methods
Add AsyncPlayerChatEvent