Add TagName attribute for tag helpers.

**Reason for PR:** We initially pushed this out to be done later but this is needed to properly complete https://github.com/aspnet/Mvc/issues/1116 and https://github.com/aspnet/Mvc/issues/1168.

- Made it so the `TagHelperDescriptorFactory` could pull tag name targets from `TagNameAttribute`s on types.
- Tested the behavior between `TagNameAttribute` and `TagHelperDescriptorFactory` (the only consumer of the attribute).
- Made sure to test duplicate and inherited class scenarios.

#120
nits:
- `<see cref="TagHelper"/>s` -> `an <see cref="ITagHelper"/>'s`
- remove "HTML" since tag name in Razor file could be anything