Fix BlockPhysicsEvent having incorrect changed type. Fixes BUKKIT-5063

This change updates the reference to the local variable representing the
block being checked when calling BlockPhysicsEvent.
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.