feat(resource): rework promise-based api

Change promise API to be more consistent with other parts of Angular and
with abstraction layers. Major changes:

 * Exposed instance.$promise as the most recent server interaction promise.
 * $promise is resolved with resource instance, not http response object. This
   is more consistent to success/error callbacks and route when/resolve clause.
 * Changed instance.$resolved to be true all the time after first server
   interaction finished.
 * Removed instance.$then and response.resource as they are not needed anymore.
 * Instance actions now return $promise to allow easy chaining.

Tests & Docs are updated accordingly.