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
It's needed for other types, eventually we will want to do this for `required` validation too (at the bare minimum), and we don't want to invalidate `required` if we have `badInput`