Added `this.state()` and `this.then()` to `Deferred` instances
Refactored `client.request()` to utilize a `Deferred` instance instead of a `Promise` instance so that users can leverage `this.always()` etc., updated docblocks
Refactored `utility.when()` to return a `Deferred`
Refactored data store methods utilize `Deferreds` instead of `Promises`, fixed error handling within `data.update()`, misc padding
Refactoring `Deferred` factory to utilize `utility.when()` to avoid recursion
Updating docblock
Merge pull request #342 from avoidwork/edge

Refactoring