Handle 1.5 inventory clicks. Fixes BUKKIT-4111 and others
Fixes BUKKIT-3589, BUKKIT-3692, BUKKIT-4035, BUKKIT-2659, BUKKIT-3386, BUKKIT-3043, BUKKIT-2897, BUKKIT-1479.

This commit brings the InventoryClickEvent in line with the new Minecraft
changes in 1.5.

InventoryDragEvent (thanks to @YLivay for his PR) is added to represent the
new "dragging" or "painting" functionality, where if you hold an itemstack and
click-drag over several slots, the items will be split evenly (left click) or
1 each (right click).

The ClickType enum is used to represent what the client did to trigger the
event.

The InventoryAction enum is used to represent the approximate result of
the event.

Additionally, handling of creative inventory editing is improved with the new
InventoryCreativeEvent, and handling of numberkey presses is also improved
within InventoryClickEvent and CraftItemEvent.

Also, cancelling a creative click now displays properly on the client.

Fixes BUKKIT-3692, BUKKIT-4035, BUKKIT-3859 (new 1.5 events), and fixes
BUKKIT-2659, BUKKIT-3043, BUKKIT-1479, BUKKIT-1450, BUKKIT-2659
BUKKIT-2897 (creative click events).