add D.deferred alias for existing D.defer method
many modification for passing version 2 of the promise-a-plus test suite