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
I don't think this is right --- we want to set the model value to undefined (because for whatever reason that's what we do in angular), we just don't want to call the view change listeners. Can you adjust this so that we don't change the behaviour (crazy as it is) of the "invalid -> undefined" thing, and just avoid calling the change listeners?