Add Promise implementation from ES6 spec.

This is an "as simple as possible" implementation of promises, based
on the January 20, 2014 draft spec.  It does not support long stack
traces or other fancy promise features.

Related ES6 spec issues opened for clarification/correction:
https://bugs.ecmascript.org/show_bug.cgi?id=2513 (Promise.prototype.then)
https://bugs.ecmascript.org/show_bug.cgi?id=2514 (Promise.all/Promise.race)
https://bugs.ecmascript.org/show_bug.cgi?id=2515 (Promise.race)

Test suite added from:
https://github.com/domenic/promises-unwrapping/tree/master/reference-implementation/test
https://github.com/promises-aplus/promises-tests (`promises-aplus-tests`)

Fixes #170.