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
We occasionally need to revalidate, even if the actual value hasn't changed. But I guess by that point, the last committed value is probably the empty string anyways. So maybe it's not worth worrying about