Fix cancellation for InventoryDragEvent. Fixes BUKKIT-4332

Cancelling InventoryDragEvent causes the placed items to be lost.  This is
because the cursor is set to the result prior to the event taking place,
so the items are removed from the cursor. When the event is cancelled, the
items removed from the cursor aren't placed in the inventory, and are just
lost.

This change sets the cursor back to the original cursor when the event is
cancelled.

Remapped by Srg2Source from Bukkit/CraftBukkit@40bfbe466c88328a7937f15cc26e91a71f791541