Tag helpers registration system

- This registration system accepts tag descriptors that it then uses to feed requests for tag helpers.
- Added some infrastructure pieces that are used to build up valid tag helper descriptors.

#70
- punctuate correctly: comma after "value" and semicolon after "property"
- not "AKA" but "i.e. add"
- might be better shorter since the called method name implies some of it.  perhaps "Since there's a value, add `{ IsSet = true }`"