Ensure we update all promises asynchronously.

Problem: the methods on the `deferred` object, eg. `deferred.add` were being called before the promise object was returned. So `L8` of https://github.com/incuna/angular-ext-q/blob/ea80543ae73c805e59a51c865f63f061cde5b451/angular-ext-q.js#L7-L17 is being called before the cb has been assigned. 

![](https://dl.dropboxusercontent.com/u/2323627/giflib/mind-blown.gif)

@incuna/js please.