Fixed Echo

I've noticed some major issues with the current way backfire works. 

When the remote object is retrieved or modified, _modelChanged is called => which calls this.set => which triggers a "change" event => resulting in _updateModel being called. 

This also happens when the remote object is first retrieved, resulting in PERMISSION DENIED issues if you only have read access to the model. 

The other issue is about firebase locations with no id. It works well when it's retrieved as it automatically adds the firebase child name. Yet, when you change the model and it gets synced, the "id" key is considered removed and sent as null, while it was basically never there.