Make tests better by using `process.nextTick` for microtasks.

This actually helped the semantics, as nested `setTimeout(..., 0)`s were taking more time than they should. And the tests run much faster now, of course.
Perform coercion entirely in a new microtask. Fixes #7.