Process block cleanup first. Fixes BUKKIT-4103

When setting a block the server sets the new block ID, calls the cleanup
on the old block, then calls the placement logic for the new block. This
would normally work correctly but we have logic to prevent errors that is
causing one here. When trying to clean up the old block we notice the block
ID has changed and try to fix things, this causes the cleanup logic to
fail. To ensure cleanup happens correctly we now do all the cleanup before
changing the block which avoids triggering the fixup code.
Only delay removing containers. Fixes BUKKIT-5238

In commit f94b7af8 I delay removing the block until after running the
block's cleanup code to avoid errors. However, this causes problems of
its own due to blocks not being written with this in mind. To avoid blocks
getting recursively removed we now only delay removing containers since
they are the only ones we had problems with to begin with.
Spigot
mc-dev import fixes
EmpireCraft POM Changes
Misc EMC Changes

Only spawn 1 ocelot ever from eggs.
Load custom permissions before plugins
Unload plugins after everything else
Color name tags to match list
Make Durability enchant scale 0-80% reduction on Armor damage (up to level 5)
Zombies break down doors on normal
Update inventory on block place/interact cancellation
Anti Dupe

Remove CraftBukkit "Feature" of ItemStack's having infinite use if less than 0 stack size.
Blocks most cases of < 0 itemstack dupe bugs
Mob Spawning Events

Add 2 events for better control of mob spawning (Natural and Spawners) This allows us a much more powerful control over spawning and improve performance
PlayerUseItem Event

This lets us control when an item is consumed and change the item.
EMC Anvil Tweaks

Make Items not have a repair cost increase due to Anvil usage.
Renaming is only 5 levels, combines include free renames.
Hidden Item Meta

This adds the ability to store hidden metadata in item lore.

Simply set a line to "&&::META" and every blank line before, that line, and every line after will be hidden from view on the client.

for example, you can set &&::META on line 20, and there will not be 19 blank lines before it.
Then you can store Data on 21+

Also adds a &&::SHINY tag to send a fake enchantment aura if it does not exists.
Must be set before META
Persistent Meta API

This adds an API for getting and setting PERSISTENT Metadata
Meta data can be stored on Worlds, 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.
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.
Precise timings
Show 1/10s TPS averages
EntityShootBowEvent consumeArrow API