feat($compile): allow directives to modify interpolated attributes

A directive can now set/update/remove attribute values even those containing
interpolation during the compile phase and have the new value be picked up
during the compilation.

For example in template:

<div replace-directive some-attr-or-directive="{{originalInterpolationValue}}"></div>

the replace-directive can now replace the value of some-attr-or-directive during compilation
which produces this intermitent template:

<div replace-directive some-attr-or-directive="{{replacedInterpolationValue}}"></div>

or even

<div replace-directive some-attr-or-directive="replacedStaticValue"></div>

as well as

<div replace-directive some-attr-or-directive></div>
feat(resource): add $promise and $response to 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.
 * Added instance.$response as http response object from most recent server
   interaction. Headers and other raw http data are accessible here.
 * 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.