wip: fix(ngModel): don't update when neither validity nor modelValue changed

This is in response to https://github.com/angular/angular.js/issues/9063.

> don't update when neither validity nor modelValue changed

is what it actually does in the code, but is written to do that:

 > don't fire ngChange when an input with ngRequired is initially invalid, but its model is defined.

A better fix would require to find out why `required` fires the observer only once, but `ng-required`fires it twice, see https://github.com/angular/angular.js/issues/9063#issuecomment-59990139
Since sometime in 1.3, on ngModel init, invalid values are kept as-is - for viewValue and modelValue. The problem is now that the observers that are attached to some validators fire immediately after ngModel init, and sometimes change the value, even though there was neither user input nor programatic model change. The conditions in the fix are afaik only true immediately after init.