Don't use setTimeout for jasmine specs and some cleanup.

Main change here is that setTimeout ends up being run recursively while
process.nextTick is not. Gone are the stacks that huge at the end of the
test suite because they're so deeply nested. Yay!