Changed promises API - separated when from whenAll
Renamed WakeDeferred to Deferred;
Removed use of .defer() and renamed option to promise
Deprecated .defer()
Fixed implementation - set this.resource with a new instance of that resource and not its constructor