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.
Implement API for ServerListPingEvent. Adds BUKKIT-5121, BUKKIT-2465
Fix stacking for items after setting empty meta. Fixes BUKKIT-5331

ItemStacks do not stack if one has null for a tag, while the other has an
empty tag. In CraftItemStack, if you set an item to an empty ItemMeta, it
will create an empty tag for the internal ItemStack.

This changes the setItemMeta function to check for empty meta, and then
use null for the tag instead of an empty NBTTagCompound.