fix(input): improve html5 validation support

This CL improves mocking support for HTML5 validation, and ensures that it
works correctly along with debounced commission of view values.

Closes #7936
I think passing it as a parameter is better than adding some other state to keep track of, and it's a lot cheaper than A) cloning the previous validity state and B) computing the difference between previous validity state and the current one.