fix(input): improve html5 validation for ngModelOptions

This is a minor adjustment over the recent html5 validation fix in order to make it work correctly with ngModelOptions. The gist is that `$commitViewValue` now runs the validation pipeline even if the view value remains empty in order to refresh the validity state.
> I want to revalidate without updating the value, but the value reporter blocks me on this because validation and value reporting are so tied together

This has always been the case regardless of `ngModelOptions` and it has now made possible with the use of `ctrl.$validate()`, you can do it any time you like without changing the value and we are already doing it, for example, when validator definitions change.

> * Native HTML5 validation
> * Validators with parameters which can change at runtime
> * Deferred or instant reporting of validity
> * Deferred or instant updating bound values

The current implementation supports all of those use cases, and I'm sorry but I really don't think it is poorly designed and certainly not made out of hacks. Refactoring is always a good idea with code which changed so much in so little time, obviously, but I have to disagree about he rest...