World/Chunk load/unload events

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

Adding a base `BlockEvent` interface.
`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.
`HumanEntity` properly extendeds `LivingEntity`

We somehow missed this in the last PR.
Add Contribution Guidlines link to README
Merge pull request #20 from prism/events-world

World/Chunk load/unload events
Merge pull request #34 from prism/events-block

Adding BlockEvent abstract class
Merge pull request #39 from simon816/readme-guideline-link

Add Contribution Guidlines link to README
Merge pull request #37 from prism/human-entity-extends

`HumanEntity` properly extendeds `LivingEntity`
Merge pull request #35 from prism/chunk-load

`getChunk` clarifications, `loadChunk` method
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.
Merge pull request #52 from prism/event-interfaces

Extracting base event "types" into interfaces
Add JSR 305 for @nullable support
Adding entity/player event interfaces

Adding a base event interface for both `Entity` and `Player`