Return Deferred/Promise

Proposed solution for kyjan/angular-sails#4
Added promise based callback handling. Converted the current callback method to use promise to keep the backward compatibility with passing the call.
It is now more in line with Angular's `$http`, except there is no `status`, `headers`, and `config` passed to the `success`/`error` callbacks and `then` has just the `response `, not an object containing the `response`, `status`, `headers`, and `config`