Replace getOnlinePlayers to provide a view. Adds BUKKIT-5668
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.