test: tests shouldn't barf on 0.8.x
glue: error-handling rewrite for 0.8 and earlier

It turns out that process.on('uncaughtException') does not behave the
way I thought it did in my fevered imaginings, and a more conservative /
slower approach is required to get the correct behavior. Tests don't
change, just run them under Node 0.8.x.
glue: error handling requires better context setup

Also imported a metric tonne of tests from Jacob's pull request and ran
against node 0.8.20. The tests are mostly passing, with the exception of
a discrepancy in core-asynclistener.simple.js, which is off by two.