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
- `object[]` is the opposite of "clean" :smile_cat: 
- the following is strongly-typed and not much worse than what you have:
``` c#
  var data = new TheoryData<PropertyInfo, string>();
  foreach (var info in {type}.GetProperties())
  {
    data.Add(info, Info.GetCustomAttribute<BuildTypeAttribute>().BuildType);
  }
  return data; 
```
could also do this inside a helper method.