make virtualElements support binding without a colon like <!--ko switch-->
preserve the ability to supply a toJSON function on an object that is respected when calling ko.toJSON
Implement trackChanges and getChanges on observable arrays
Support sparse diffs in general
Make array change tracking return sparse diffs

… because it will be far cheaper for known operations
Beginning implementation of "skip diff algorithm for known operations"

Currently only knows about "push"
Support the remaining known operations
Enable change tracking tests in Node.js, and fix minified build
Switch to a "subscribe"-based API for receiving array changelists
Implement array change tracking as an extender that can be used with any observable.
Clarify that ordering of array changes is only undefined for replaced items (the added and deleted entries for that item can be in either order); the changes are always ordered by index.
Optimize cacheDiffForKnownOperation for similar operations.
Allow extender to not return a value if the target observable isn't replaced.
Ensure that the trackArrayChanges extender only modifies the target observable once
Merge pull request #1071 from knockout/1071-not-respecting-toJSON

ko.toJS() in 3.0.0beta omit toJSON function from output
Use Jasmine's 'after' and custom 'restoreAfter' methods to clean up after tests that modify Knockout internals.
Provide more informative info for binding errors
Use "toThrow" syntax to check for errors.
Merge pull request #695 from knockout/695-array-change-tracking

Add support of filters/projections for observableArrays
Merge pull request #1082 from knockout/1082-cleanup-after-tests

Ensure tests don't break subsequent tests
Merge pull request #1058 from knockout/1058-binding-errors

Binding errors in 3.0 are less informative
Like plain observables, computed observables now only notify if their value changes. The 'notify' extender or the 'equalityComparer' function can be used to modify this behavior. This change makes both kinds of observables act the same.

Add a new "updated" event for observables (all kinds) that's notified when the observable was updated even if it wasn't changed.
Remove "updated" event.
Simplify virtual element regex and use "test" instead of "match"