Handle null damage events for item frames. Fixes BUKKIT-5114

Some types of damage are handled specially so do not end up returning an
event in handleEntityDamageEvent. To ensure we don't have problems with
these we need to check for them and simply ignore them, as they've been
handled already.
Call event when pistons push an item frame/painting. Fixes BUKKIT-5110

When pistons push/pull blocks they call Entity.move(float, float) to move
entities out of their path. For hanging entities this code path makes them
simply die and drop as an item. We now call an event in this scenario so
plugins can control this behavior.
Print message on startup before loading log4j

Log4j takes a long time to load on startup. Before it loads, the server
appears to have frozen as there is no output until after. We now print
a loading message before this happens to let the user know the server
is actually working.
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.