Fix attributes not clearing on death. Fixes BUKKIT-5213

Due to an incorrect mapping of this method to a friendly name, we're
unfortunately calling the wrong method within EntityPlayer.reset() to
reset attributes. Instead of what we've mapped as "removeAllEffects", we
should be calling EntityLiving.aP(). This mapping should be corrected in
the next naming version.
Account for different reach limit in Survival/Creative. Fixes BUKKIT-4257

When we first added the reach limiter in CraftBukkit there was no
difference between how far the client could reach in vanilla while in
Survival or Creative. At some point in Minecraft's cycle Creative was
given a block extra to work with and our protection was not updated to
account for this. We need to respect the possibility of different game
modes in Minecraft providing the client with varying reach distances.
[Bleeding] Send short version string on ping. Addresses BUKKIT-5206

With the update in 1.7 that improved the server ping, it was made to
include a long version string for CraftBukkit. This value is too long
for proper display so we now send a shortened string consisting of
the server implementation and the minecraft version.
[Bleeding] Call event when reflecting fireballs. Adds BUKKIT-5214
[Bleeding] Fix crash involving horse passengers. Fixes BUKKIT-5212

Setting a horse's passenger to a non-living entity will cause a
server crash when the horse ticks, we need to check that it is
a living entity before casting, and skip otherwise.
[Bleeding] Handle custom furnace recipes separately. Fixes BUKKIT-1657, BUKKIT-3846

Due to vanilla blanket comparing data values, and the unspecified
order of hashmap iterators, we need to run through custom recipes
first, and therefore separately, to ensure that they are actually
used. By not adding the custom results to the experience table, we do
not override the experience gains from vanilla smelting recipes.
Updated version to 1.7.2-R0.2 in pom.xml for Beta.
Updated version to 1.7.2-R0.3-SNAPSHOT for development towards next release.
Process block cleanup first. Fixes BUKKIT-4103

When setting a block the server sets the new block ID, calls the cleanup
on the old block, then calls the placement logic for the new block. This
would normally work correctly but we have logic to prevent errors that is
causing one here. When trying to clean up the old block we notice the block
ID has changed and try to fix things, this causes the cleanup logic to
fail. To ensure cleanup happens correctly we now do all the cleanup before
changing the block which avoids triggering the fixup code.
Only delay removing containers. Fixes BUKKIT-5238

In commit f94b7af8 I delay removing the block until after running the
block's cleanup code to avoid errors. However, this causes problems of
its own due to blocks not being written with this in mind. To avoid blocks
getting recursively removed we now only delay removing containers since
they are the only ones we had problems with to begin with.
Add failing unit test for ItemMeta-repairability
Consider repair cost when checking ItemMeta emptiness. Fixes BUKKIT-5304
[Bleeding] Implement setIdleTimeout and getIdleTimeout. Addresses BUKKIT-4932.
Implement UnsafeValues for give command. Addresses BUKKIT-5286
Add StatisticManager.java for diff visibility.
[Bleeding] Fix Achievements and Statistics API. Fixes BUKKIT-5305
[Bleeding] Implement methods for /achievement command. Addresses BUKKIT-4932
[Bleeding] Check that vanilla recipes actually exist. Fixes BUKKIT-5277

When falling back to vanilla recipes in the iteration of recipes,
a check is necessary to ensure that vanilla recipes are present.
RecipeIterator has been modified to account for the multi-map setup.
[Bleeding] Account for null in EntityDamageEvent handling. Fixes BUKKIT-5317

Damage caused by explosions will return null for the event as of
6588d6f72bbca74bf150de65593ac575b846111b. As such, a null check is
now necessary when handling non-living entity damage events.
 [Bleeding] Properly handle EntityBreakDoor event canceling. Fixes BUKKIT-5318

The method being called was renamed during the 1.4.2 update process
but the function call was not replaced accordingly, leading to a
missed diff from 314051580a0a8e4745d3a539f232b552916eb302.