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
hmm, this effectively means the provider infrastructure is _not_ expected to decide what "matches" means.  might be better to stick an `IComparer<TagHelperDescriptor>` or `IEqualityComparer<TagHelperDescriptor>` implementation in the provider, for use within it's (private) dictionaries.