Clean up some asynchronous handling
Added a method interception utility to MockTime (sort of time related) that
allows tests to trigger logic at specific code points. Used this to remove
a few uses of yield3() in IntegrationTest.
Removed some additional uses of yield3() in IntegrationTest that didn't seem
necessary.
Replaced the dark-magic "getPromiseResolver" with magic-free "createPromise".
Removed time reset in IntegrationTest as it was erronious based on how the
test was designed.
Was attempting to isolate an intermittent issue in IntegrationTest. Don't
feel like I did but it no longer fails on my box after a couple hundred
iterations.