[Design] Add `InputTagHelper`

- first part of #1245 (mostly needs tests)
I guess ultimately this makes modifying the input's `value` ambiguous right?