Naive implementation of array clone

`deepExtend` was unable to correctly clone arrays. This resulted in `original` storing a reference to an array rather than a deep copy. Therefore, the pristine check would always return 'true', even without sync being called on the `ModelInstance`.

Also alter the PATCH calls in the test so they return the expected version of the updated object.