Fix a bug in the source dispatch
Fix a bug in the source dispatch

Removing the references to deallocated listeners did not work correctly if more
than one listener had to be removed at the same time. The new implementation is
correct and also appears to be 10 times as fast.

aepsil0n/carboxyl