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
see lots of `internal` use in this repo but let's not make this more prevalent. split internal helpers out into a separate class, make everything public, and use a namespace such as `Microsoft.AspNet.Razor.Internal` or `Microsoft.AspNet.Razor.TagHelpers.Internal` (depending on how much implementation detail you expect just for tag helpers)