api.post() now returns a promise

This is a breaking change that is necessary to prevent a race condition
in the memoization logic for newly created resources. The returned
promise is resolved with the resource after it is flagged as $loaded,
stored (or extended) in cache, and initialized.