[Design] Add `InputTagHelper`

- first part of #1245 (mostly needs tests)
that was my argument and I lost. our general principle is to `throw` whenever one of our attributes is bound but the tag helper no-ops.  see e.g. all of your tag helpers :smiling_imp: