Add `InputTagHelper`

- first part of #1245 (mostly needs tests)
Add comment stating why `tagBuilder != null` implies self closing output.