Add IDispenseBehavior for diff visibility
Add the getSlot method to BlockDispenseEvent. Adds BUKKIT-5142

The BlockDispenseEvent is missing a method to get the slot that an item
was dispensed from. Without this commit, there is no way to find out
which slot an item was dispensed from, preventing exact rollbacks of
changes to a dispenser. This commit fixes the issue by adding the
getSlot method to the BlockDispenseEvent. It also modifies the
constructor of BlockDispenseEvent to add the parameter 'slot', and
passes it in in existing code.