update D.js to current promises-aplus specification

D.js did not comply with promises-aplus spec version 1.1, because `_resolve` permitted foreign thenables to receive `promiseResolve` (`_resolve`) and `promiseReject` (`_reject`) callbacks plural times, and to throw resulting in yet another call to `promiseReject` (`_reject`).  See [Promises/A+ spec v1.1](https://github.com/promises-aplus/promises-spec) (Promise Resolution Procedure § 3)

The pull request modifies `_resolve` to assure that at most one callback will be called, and then at most one time.  This brings the entire library up to promises-aplus specification v1.1.