Removes some of the temptation to use "#transform" and "#transform_error" to acheive this effect.
Catch a greater variety of exceptions in Bind combinator
Also change from 'yield' to 'block.call', to work around some weird Ruby behaviour (bug?): after the 'yield', callback_args becomes an empty array! Maybe due to switching stacks between the callback and yield...?
Less because good code would be written that way, and more to obey the Principle of Least Astonishment. It would be upsetting if raising an exception here caused the reactor thread to die, for example.