[promise] First steps for removing the circular...

...reference between promise and resolver
[promise] Deprecate resolver.promise
[promise] Deprecate resolver.then()
[promise] Make resolver.then call promise.then

Now that resolver.then() is deprecated it should be as small as
possible. So to avoid duplication of code, it calls promise.then() on
its own promise.
[promise] Remove resolver._wrap
[promise] Make resolver._addCallbacks private
Merge branch 'promise-cycle' into dev-3.x