Fix ListDiff moves to actually be reliable.
Add NewLocation.oldIndex in case clients want to use .remove(int).
Extract ListDiff.apply method from test.
Remove unneeded test as ListDiff.apply uses oldIndex.
Add ListDiff.apply(list, Mapper) overload.
Add add(index, item) tests for ListProperty.as.
Remove ValueAddedEvent.newIndex in anticipation of ListChangedEvent with the full diff.
Add ListChangedEvent for listening for the ListDiff.
Rewrite ListProperty.as to use ListDiff.apply.