Set proper position of snow block. Fixes BUKKIT-5004

Missed diffs when updating to 1.7.

Pulled from PR #1278
Added EntityItemFrame.java for diff visibility
Call EntityDamageEvent on ItemFrame item removal. Fixes BUKKIT-5020

Calling this event allows plugins to react to the situation by simply
handling a normal damage event, possibly using existing code to
handle other entity damage.

Pulled from PR #1279
Call BlockPlaceEvent for cocoa beans planted on log. Adds BUKKIT-5039

The behavior of cocoa are now aligned to be the same as other plants.

Pulled from PR #1281
[Bleeding] Ignore Block Physics in Chunk population. Fixes BUKKIT-4923

Suppressing physics updates during Chunk population prevents
infinite recursion due to custom Block Populators editing border
blocks on chunks.
Don't consume bonemeal if there is no crop present. Fixes BUKKIT-3790

Bonemeal dispense behavior already took care of decrementing the item
stack, therefore we shouldn't manage the size manually.

Pulled from PR #1172
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