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
`$validate()` doesn't sound like something that you do when you want to parse the view value --- it really doesn't make sense that we're even doing this to begin with.