Revise the handling of exceptions thrown in callbacks

On second thoughts, exceptions thrown in callbacks *should* crash the
program, since they are likely to indicate bugs. Redirecting them to
an error event is conflating them with operational errors -- dropped
connections and the like.

It's possible to use domains (available since Node.JS 0.8) to redirect
otherwise uncaught exceptions, as demonstrated by the tests.