Allow plugins to directly extend promises

Because a deferred is a function and a promise is a local variable in that function, it's hard to mess with. I had to do a double hook on promise and Deferred without this fix. I guess that's reasonable but no very inviting to extend.

This is my use-case: http://stackoverflow.com/questions/20693659/releasing-the-ui-to-update-with-deferreds/20710046#20710046 I wrote a `.thenst` method for all deferreds.

With this fix, a function that extends _promise can access the original promise with `this.promise()`.