Fix cancelling PlayerDropItemEvent. Fixes BUKKIT-3313

Up until this commit the PlayerDropItemEvent, if cancelled, would return
items to the first available slot in the inventory - which is clearly
undesirable as a player and plugin author to deal with.

This commit changes that by ensuring that the item is returned to where
it came from in the player's inventory. This still supports modifying the
drop from the player and will default to "first available slot" if the
item has changed since the event was fired. Other remaining behaviour of
the event is still in tact and has not been modified.
Use sensible AssertionError instead of ambiguous RuntimeException
Implement deprecated methods. Adds BUKKIT-5752
Revert "[Bleeding] Ensure skeletons spawn with equipment. Fixes BUKKIT-2836"

This reverts commit a2d90d3e30db2bf2897f19ff0b93461dfc8a487f.