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 check for Thorns damage - Fixes BUKKIT-3505

Make CraftEventFactory check the translation string to see if it is "thorns"
The translation string is a bad solution, but it's frankly the best way
we have available to us right now.