feat(core): changes the way creation of object in collection work. Adds $reveal and $moveTo methods.

Creation of new objects in collection no longer adds the object inmediatelly, it now waits for server success response to call add.

Alternatively the `$reveal` can be used to add objects inmediatelly or to prevent objects to be added on success.

Closes #49

BREAKING CHANGES: New objects are not inmediatelly added to collections anymore. Also, the $load method has been removed.

To migrate existing code:

* replace `$load` calls by $new.
* replace calls to $build/$new/$buildRaw/$create by <method>().$reveal() to inmediatelly show new objects.
feat(core): makes `$inferKey` only be called for raw data.

This also means that `$build` no longer infers primary keys.

Closes #36

BREAKING CHANGE: $build no longer infers primary keys.

To migrate existing code replace calls to $build that include the primary key by calls to $new(pk).$extend(other_data).
feat(core): changes $extend to only copy non-private properties.

BREAKING CHANGE: $extend no longer copies properties that start with $.

To migrate existing calls that need to copy 'private' values use angular.extend instead.
feat(core): makes $build use $extend.

BREAKING CHANGE: $build no longer copies properties that start with $.

To migrate existing calls that need to copy properties that start with $ use angular.extend(Model.$new(), init_data) instead.
bumps v0.14.0