Fix infinite mediator.once

This fixes issue #29 which outlines a situation where a callback method
would get called an infinite number of times if the callback publishes
to the same channel that caused the callback to be triggered in the
first place.

By first checking if the subscriber will be called and decreasing its
call counter by one we can remove the subscriber from the channel before
the callback method is called. This will prevent the infinite loop from
occurring.
Fix problem with removed subscriber

The previous commit introduced an error when a callback would remove
itself from the subscriber list and thereby caused the number of
subscribers to change while in the loop of calling the callbacks.
Merge pull request #34 from tbusser/feature/fix-infinite-once

Fix infinite mediator.once