removed code duplication, made Promise.method and .cast/.from A+-compatible
Reject self-adopting promises, renamed assimilation to adoption

* Also passes the A+ test suite now!
* Began with DependingPromise constructor