Implement Firework.detonate(). Adds BUKKIT-4538

This implements the detonate method from bukkit by setting the fuse
timer to 0. This makes a firework explode using the normal codepath,
but without waiting for the fuse.
Follow vanilla settings behavior. Fixes BUKKIT-5069

A vanilla server does a series of checks for the client black-listing
certain chat types (commands or chat). This change changes a CB
whitelist to the vanilla blacklist behavior.
Reintroduce disconnection flag that was removed in 1.7 update.
[Bleeding] Correctly generate giant mushrooms.  Fixes BUKKIT-5066

This change fixes the reference to the local variables representing the
block position during large mushroom generation.
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.