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
We could do that for our own validators; but if anyone else uses observers in validators, they will run into the same problem. I don't think we want to introduce a new api for that. If we do it only for `$validate`, it's going to be a breaking change for those who use it where they need to parse the viewValue.
I agree we should have separted parsing and validating more when we had the chance to.