Persistent Meta API

This adds an API for getting and setting PERSISTENT Metadata
Meta data can be stored on Entities, Chunks and at a Block level.
Meta is is provided in a simple Map/List setup and does not expose raw NBT access.
Chunk Save Reattempt

We commonly have "Stream Closed" errors on chunk saving, so this code should re-try to save the chunk in the event of failure and hopefully prevent rollbacks.
Keep certain items on death API

This adds a getItemsToKeep to PlayerDeathEvent that can be modified for what item a player should keep upon death.

This can be used for never-to-be-dropped items.
Temporary hopper events
Anvil Event

Fire an event for anvil usage
ArrowHitBlock Event
Entity Spawn Events

These events fire any time an entity is added/removed to the world, so we do not
have to check multiple locations for entities being added/removed from the world.