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 don't think we want to diff ValidityState objects every time we want to validate something --- I could be wrong, but that seems like more work than it's worth