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.
 Fire BlockFromTo Events but mark as cancelled those that do not actually flow