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
- nit: "metadata class" seemed useful in a few earlier "info" and "descriptor" classes
- name your descriptor / info classes consistently.  for example either the earlier class should be `TagHelperAttributeDescriptor` or this should be `TagHelperInfo`