[nr] Async tasks, step 1
[nr] Async tasks, step 2

Use domains to track the current task.
[nr] Fixup step 1
[nr] Async tasks, step 3, done

Now everything is ready to go ahead and invoke async tasks (with a
callback). Thanks to IcedCoffeeScript's await, `_runAsync` is almost
100% identical to `_runSync`.