Fix values/reasons not being propogated to first correct registered callback.
Make sure the promises validate against the promises spec tests.

* Add a package.json
* Allow module to be used in node
* Add an adapter to work with the tests
Add otherwise/ensure