preserve the oa instance when it appears in data

this may be easiest to illustrate with code:

```js
var o = ko.observable()
var oa = ko.observableArray()
var model = {};

ko.mapping.fromJS({o: o, oa: oa}, model);

equal(model.o, o); // this is currently true
equal(model.oa, oa) // this isn't true, but is fixed with this commit
```

the problem is that using ko.mapping, if you've got an existing OA,
there's no way to update a viewmodel with the existing OA, a new one is
always created.

this pull request provides a way to update viewmodels to reference
pre-existing observable arrays.