Rewrite observable.innerSetter

Reference BlueSpire/Durandal#496
Merge branch 'Bug-496' of https://github.com/jbblanchet/Durandal into Version-2.1.0
Fix Issue ##498 and #496: Overwriting an observable array results in one-way binding of the new array