Add InventoryMoveItemEvent. Adds BUKKIT-3765

This event is being called whenever a block or entity (e.g. hopper) tries to
move an item from one inventory to another inventory (one inventory may be
the hopper itself).
Add Thorns to DamageCause - Related to BUKKIT-3505
Add ability to change player item in hand. Adds BUKKIT-3318