Add `InputTagHelper`

- first part of #1245 (mostly needs tests)
hmm, see both "indent case labels" choices in this repo. not sure which is the VS default option though I don't think I've messed with it.
I'm going to leave this as-is