Fix stacking for items after setting empty meta. Fixes BUKKIT-5331

ItemStacks do not stack if one has null for a tag, while the other has an
empty tag. In CraftItemStack, if you set an item to an empty ItemMeta, it
will create an empty tag for the internal ItemStack.

This changes the setItemMeta function to check for empty meta, and then
use null for the tag instead of an empty NBTTagCompound.
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
EntityShootBowEvent consumeArrow API
Entity Tracking with Vehicles fix

If an entity untracks from a player while a vehicle/passenger, the rider can become frozen
and stop receiving updates correctly.

This patch makes it so passengers track the same way as their vehicle.
Inventory Meta API