Extend `Object.setPrototypeOf` fix in PR #223 for IE 9/10.
Improve test suite for Promise.

A number of the asynchronous tests were timing out after uncaught
exceptions rather than properly reporting thrown exceptions.