Rework furnace result log. Fixes BUKKIT-5115

This changes the logic for furnace smelt event to consider a result of
null (read: air / invalid), which will still consume an item. It also
properly considers item meta in the result, instead of only checking the
item data value.
Call interact event if block cannot be punched. Fixes BUKKIT-5126

We do ray tracing on arm swings to filter out swings that hit blocks since
punching blocks has its own event handling. However, some blocks cannot
be punched so the air interact type is still valid for them. Luckily
these blocks all have a means to query them so add an additional check
for this and don't fail the check for them.
Only filter data from block items, not all of them. Fixes BUKKIT-5047
Show fall particles while in creative mode. Fixes BUKKIT-5009

Relocate CraftBukkit patch to fall damage when changing
gamemode from creative mode.
Alter fall particles to respect visibility API. Fixes BUKKIT-5158

Bukkits Visibility API should prevent players from seeing fall particles
of players that they cannot see.  This commit alters the handling to
provide an EntityPlayer argument that is later used to determine if they
are visible.
Re-add WorldLoadEvent lost in 314051580a0a8e4745d3a539f232b552916eb302  Fixes BUKKIT-5125

In the 1.4.2 update for CraftBukkit, a missed diff resulted in the
WorldLoadEvent no longer being fired for the worlds loaded on
startup.
Throw event when EnderCrystals harm EnderDragon. Fixes BUKKIT-4052

The EntityLiving dealDamage method will not call an event for the
entity damage caused by an explosion without an associated
entity cause, therefore, the explosion caused by EnderCrystals
needs to be explicitely handled within the EnderDragon class.
Do not fire EntityDamageEvent for explosions twice. Fixes BUKKIT-5156

Explosions directly caused by LivingEntities, such as creepers and tnt lit
by players, have their EntityDamageEvent explicitely handled within
the Explosion class.  In order to prevent double events when damage
is handled for other DamageSources, we need return null for explosion
based damage sources.
[Bleeding] Call EntityTargetEvent for EnderDragons. Fixes BUKKIT-5160

EnderDragons did not call an EntityTargetEvent when they
were targeting random players in the End.  This commit
adds that event call into the targeting code.
[Bleeding] Fix Blazes not firing death events. Fixes BUKKIT-4898

Previously, due to the way that death events were called, Blazes only
fired death events when they dropped loot. This change fixes that,
enabling death events for Blazes whenever they die, regardless of loot
drops.
[Bleeding] Fix witches dropping empty ItemStacks on death. Fixes BUKKIT-3554
[Bleeding] Return correct drops for Cocoa blocks. Fixes BUKKIT-5159

For Cocoa Blocks, Block.getDropType() returns the item form of the Cocoa
block, rather than the Cocoa Bean item. Because of this, Cocoa blocks need
to have explicit handling in order to return the proper drop contents.
Don't try to teleport to a null world. Fixes BUKKIT-5145
[Bleeding] Correct naming of sounds for 1.7. Fixes BUKKIT-5065

Several sounds were renamed in Minecraft 1.7, and have been updated
accordingly. Additionally, two sounds, HURT and BREATH, were removed from
Minecraft.
Fix generation of jungle trees. Fixes BUKKIT-5043

Due to changes in the generation of trees, the name of the class responsible
for the generation of jungle trees has changed from WorldGenMegaTree to
WorldGenJungleTree.  As such, references to WorldGenMegaTree need to be
updated to WorldGenJungleTree to generate the correct type of tree.

Pulled from PR #1277
Add missed tree types for Minecraft 1.7. Adds BUKKIT-5042

This commit adds support for the Tree Types that weren't added in the
initial update to Minecraft 1.7.

Pulled from PR #1277
[Bleeding] Fix incorrect Cocoa Bean orientation. Addresses BUKKIT-5182

When ItemDye is used to place a Cocoa Block, the postPlace() method
should not be called, as data is handled within the ItemDye class.
However, if Cocoa is placed via its block item, postPlace() should
still be called to mirror vanilla behavior.
Remove references to chunklist. Fixes BUKKIT-5190

Commit c576054539790bdeb35285f62863d74b48c0782d removed the chunklist
collection stored in ChunkProviderServer, however it has been partially
restored in some places by 7e1ac0a77129b169704c1e222ff2deb3ab6cd2d2. As
not all references to this were restored, this has caused the chunklist
and chunks collections to become out of sync, resulting in a memory leak.

This commit removes chunklist from ChunkProviderServer again.
Fix mistranslation issue for PlayerToggleFlightEvent. Fixes BUKKIT-5172

Thanks for pointing it out RingOfStorms!
Check pending blocks before falling back to world. Fixes BUKKIT-5122

When growing trees we use a BlockChangeDelegate which queues up the block
changes so plugins can modify/block/log tree growing. However, we always
check the actual world when checking for existing blocks. This means when
the tree growing code checks to see if putting a leaf in a block is valid
it may incorrectly overwrite a log block that should exist in that
location. To ensure trees grow correctly we now check the delegate itself
for blocks that match the queried location before checking the world.