"arrayChange" event for splice assumes all added items are new

Given

```
var a = ko.observableArray([2,1]);
a.splice(0, 2, 1, 2);
```

The expected output should be something like this (the output of the `compareArrays` function):

```
[
    {status:"deleted", value:2, index:0, moved:1},
    {status:"added",   value:2, index:1, moved:0}
]
```

Instead, it's this:

```
[
    {status:"deleted", value:2, index:0},
    {status:"added",   value:1, index:0},
    {status:"deleted", value:1, index:1},
    {status:"added",   value:2, index:1}
]
```

http://jsfiddle.net/mbest/uWQyF/