* Avoid the creation of explicit resolve/reject functions for some basic
cases in the Promise polyfill.
* Remove .prototype object of resolve/reject functions because they are
not constructable. This breaks the circular reference nature of the
functions, allowing better GC behavior.
* Reuse a reaction queue object as a job queue object. This works because
the reaction queue objects are not visible to calling code, are used only
once, and never reused.
* Other minor optimizations.