fix(ngModelController): don't run $validators if modelValue hasn't changed

This fixes issues where a parser calls $setViewValue. This is a common
strategy for manipulating the $viewValue while the user is entering
data into an input field.

When the $viewValue was changed inside the parser, the new viewValue
would be committed and used for validation. The original parser
however would run last and pass the original (outdated) viewValue on
to the validators, which could cause false positives, e.g. for
minlength.