multi-context wip
WIP: first attempt at adding async listeners

The asyncListner will be called the moment the callback is queued, and
will expect a function to be returned. This will be using an enclosure
method of exposing this functionality. It's cheapest for core, and we'll
see how much performance impact it has on domains once it's in.