Replace thenable assimilation with resolution.

This helps specify how you should get a reference to the `then` method, test it, and then call that same reference, as discussed in #88. I think it also makes the spec rather more elegant.
Handle exceptions thrown by getting `x.then`.

The strategy is to reject `promise` with the thrown exception as the reason. Fixes #87, fixes #88.