Use addObject when updating record arrays

Currently using pushObject which means creating an object, adding it to the array, then saving the object results in the object being in the array twice.
Add test for RecordArray change to addObject.

Creating a new model, inserting into an existing RecordArray and calling save should not duplicate the model in the RecordArray.
Fix re-dirtying non-embedded hasMany after save

Save did not update the original content of the array to
reflect the new original state
Merge pull request #299 from Connorhd/patch-1

Use addObject when updating record arrays
Merge pull request #349 from dwickern/dirty-hasmany

Fix re-dirtying non-embedded hasMany after save
On unload, remove record from has many arrays.