Only remove and re-add models that have new sort positions.

When a model gets changed, it is removed and re-added to the proxy collection to enforce proper order in the proxy collection. However, this is done on every change event, not just the ones that would alter the collection order. This change only removes and re-inserts the model if it would have a new position based on the change.