refactor(record): wraps $fetch/$save/$destroy in $always calls.

This way url building happens inside the promise chain, this means that
calling `record.$fetch().$save()` properly waits for $fetch to finish
before calling $save.
feat(record): makes $extend execute in the promise chain.

Also adds the $update method (just a shortcut).

BREAKING CHANGES: Record.$extend now executes in the promise chain.

Changes made via Record.$extend may not be inmediately applied.
feat(record): makes destroy immediately remove revealed item from owner collection if not saved.

Closes #146
refactor(): improves url generation logic.

* Generalizes action urls method checking.
* Adds the posibility to override Collection.$fetch url.

Closes #147