Added InventorySwapEvent - BUKKIT-3386

The InventorySwapEvent is fired when a Player swaps items to/fro the hotbar to/fro the inventory using the numberkeys. This was a feature added in Minecraft Snapshot 12w40a. In previous bukkit versions, there was no way to detect this, however I noticed that the numberKeys were sent through protocol 102 in the MouseButton variable. Also HoldingShift equals 2 when numberKeys are pressed.

In the CraftBukkit PR, I implemented the calling for the event. It is called by packet 102 (which now branches into three different events based on some variables). I also run the updateInventory(); function if the InventorySwapEvent is canceled because without it, the items are displayed in the wrong slots.

Fixes: https://bukkit.atlassian.net/browse/BUKKIT-3386
Bukkit PR: https://github.com/Bukkit/Bukkit/pull/764
Test Plugin: http://pastebin.com/nrfwiAPD

Signed-off-by: seifpic <seifpic@hotmail.com>