Promise/A, jQuery.Deferred and other libraries provide futures functionality using deferred, defer, and promise.
In contrast, the AngularJS.$defer() is actually a $wait() or $delay() feature. Thus I request that the $defer() be renamed to $wait() or $pause().
I see how this can be confusing. Especially with the recent addition of promises/futures which landed in master. I like the idea of renaming it to $delay unless a better name shows up. (wait makes it look like a synchronous api, so I don't like that name).
An alternative name could also be $callLater(); but in Flash call later delays the call only for 1 frame (typically ~24 ms).
feat($timeout): add $timeout service that supersedes $defer
$timeout has a better name ($defer got often confused with something related to $q) and
is actually promise based with cancelation support.
With this commit the $defer service is deprecated and will be removed before 1.0.
Closes #704, #532