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
this one is even easier to do as a `TheoryData<PropertyInfo, string>()`.  just use dictionary initialization:
``` c#
  return new TheoryData<PropertyInfo, string>
  {
    { typeof(byte), "System.Byte" },
    ...
  };

```