Allow fireworks to be created. Adds BUKKIT-3262
Add DispenseBehaviorFireworks and EntityFireworks for diff visibility
Fire BlockDispenseEvent for fireworks. Adds BUKKIT-3246
Update firework power when modifying meta. Fixes BUKKIT-3272
Remove runner leak on async tasks. Fixes BUKKIT-3288

In some situations, an async task could be cancelled with no tasks
pending. This means the finally {} block from run() never gets executed
properly on the last async task to have run, as it expected to be
executed again.

This fix takes the only spot that the task period is set to cancelled
and will check to see if the task should be purged from the runners
list.
Report valid health when getting Entity health. Fixes BUKKIT-3210
Implement entity max health methods. Adds BUKKIT-266
Properly update fireworks. Fixes BUKKIT-3289
Fix fireworks being short lived. Fixes BUKKIT-3291
Fix Skull BlockState setting illegal values on owner.
Perform permission removals after the quit event. Fixes BUKKIT-3303

The player would have no permissions (other than their OP status)
when checked in the Quit event. This is because we removed permissions
before the event occurred. By calling it afterwards, we can persist
the data until the server finally removes the player.
Fix fireballs being motionless (again). Fixes BUKKIT-3299

The key "direction" incorrectly mapped to variables that were already
set in the entity. In order to prevent loading incorrect data we
renamed "direction" to "power."
Never remove players when unloading chunks. Fixes BUKKIT-3129

When unloading chunks we have a check to ensure we do not remove players
from the world due to the issues this would cause. However, our check
to see if the player is in this chunk is reversed and is in fact entirely
wrong. Even if the player isn't currently in this chunk we do not want
to remove them as that will still cause the same issues.
Don't update physics until after the place event. Fixes BUKKIT-3316

If you cancel a BlockPlaceEvent for a sign the world is updated as if
the block was placed and then destroyed. To avoid this we set the block
without updating physics then apply the update after the event.
Add BlockDiode from mc-dev for diff visibility.
Fire BlockRedstoneEvent for repeaters. Fixes BUKKIT-1157
Fix discrepancies in NBT and ItemMeta. Fixes BUKKIT-3279

An ItemStack gains the tag name "tag" when the stack is serialized
to NBT, however items don't have a tag *until* they are serialized at
least once. So to solve this, we remove the tag name when loading the
NBT data.

Another problem with NBT are TagLists, when transferring tag lists
between the server and the client the names are lost, and so we
simply don't add a name to the tag.
Fix removing enchantments causing the enchantment tag to remain.
Update maxhealth for entities that have variable max health. Fixes BUKKIT-3308

Slimes and wolves have health that can change based on certain
conditions. So we check if their max health should be updated, and if
it has been customized in any way.

We also scale the wolf's health for their tail
Fix persistence on tamed pets. Fixes BUKKIT-3300

With the persistence api introduced, pets did not have their
persistence flag updated to reflect their persistence. This caused
tame ocelots to not persist under specific conditions.