Fix PotionEffect removal.

The method in EntityLiving to remove a potion effect was remapped during
the 1.7.5 update.  The method invocation in CraftLivingEntity was not
updated to invoke the remapped method, which has led to a random method in
LivingEntity being called in its place.

This commit corrects the behavior of removePotionEffect by changing the
method to invoke the remapped method as opposed to EntityLiving#m(float).

Thanks to @gabizou for finding this issue.
Correct missed diff
Fix issues with leashes and weather due to missed diff
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.