Constrain onFulfilled and onRejected to not be called too early.

Fixes #129 by prohibiting `onFulfilled` and `onRejected` from being called before the promise is respectively fulfilled or rejected. An example of behavior the current spec allows would be for an implementation to call `onFulfilled` or `onRejected` once, even on a promise that remains pending forever.