Return full deferred instead deferred.promise()

This allows for the ability to cancel any fetch request as it
now gives the full promise and all functionality with that.

fixes #71
Merge pull request #72 from garrensmith/master

Return full deferred instead deferred.promise()