always empty domain stack when handling exceptions

Due to the nature of asyncronous programming, it's impossible to know
what will run on the next tick.  Because of this, it's not correct to
maintain domain stack state between ticks

Since the uncaughtHandler is only invoked after the stack is unwound,
once it exits the tick will end.  The only reasonable thing to do in
that case is to exit *all* domains.