Merge pull request #90 from briancavalier/add-when-200

Add when 2.0.0 to implementations
Add Covenant to implementations.
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.
Spell the resolution procedure as `[[Resolve]]`.

Per comments from @erights in #84, this makes it clearer that the procedure is an abstract specification device and not a real JavaScript function.
Fix typo.

Pointed out by @briancavalier at https://github.com/promises-aplus/promises-spec/commit/d08e9dd7bab25544aeb67f15a92e731dcbf49e2e#commitcomment-2902051.
Add Pinky to implementations list.
added ondras/promise
Add ff to implementations list.
Adding D.js to implementations list.
Update Covenant's description.

It's no longer ~60 lines :).
Consistently use "reason" rather than "rejection reason". See #80
Similarly, use "value" instead of "fulfillment value". thanks @domenic
Add Shvua to list of implementations.
Handle thenables that fulfill with themselves.

Without this change, thenables that fulfill with themselves would cause an infinite loop in the spec algorithm. Real-world examples of this include far references from Q (i.e. where the promise represents a reference to a remote object), or promise-entities from Ember.js.

Thanks to @erights for discovering this.
Allow vicious cycle detection.
Mandate `[[Resolve]](p, p)` to throw a `TypeError`.
Add more implementations!

Includes Local.js Promises, Promix, and xogeny/aplus (a Python implementation!).
Encourage usage of the "promises-aplus" keyword.
Add link to FidPromise implementation.