fix(input): trigger modelValue update on viewValue property changes

If the $viewValue is an object then we should trigger a model update
if properties on that object change.

Previously, we were only checking for change of object identity.

Closes #7965
I think the `copy` should be done as early as possible (in `$setViewValue`) and not here, otherwise updates to the object that was passed in might effect `ctrl.$viewValue`, `ctrl.$modelValue` and the scope bound to it.