Avoid unecessarily removing and adding children from the same parent

This change allows you to perform in-place array modifications on a has-many association:

```javascript
store.load(App.Post, { id: 1, comments: [ 1, 2, 3, 4 ] });
store.loadMany(App.Comment, [
  { id: 1, post: 1 },
  { id: 2, post: 1 },
  { id: 3, post: 1 },
  { id: 4, post: 1 }
]);

post = store.find(App.Post, 1);
comment2 = store.find(App.Comment, 2);
comment3 = store.find(App.Comment, 3);

post.get('comments'); //=> [1, 2, 3, 4]
post.get('comments').replace(1, 2, [ comment3, comment2 ]);
post.get('comments'); //=> [1, 3, 2, 4]
```