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
similar to #166, this attribute should be inherited.  will also need to change the lookup at [line 44](https://github.com/aspnet/Razor/blob/TagHelpers_TagNameAttribute/src/Microsoft.AspNet.Razor.Runtime/TagHelpers/TagHelperDescriptorFactory.cs#L44) in previous file.
example scenario would be customers wishing to subclass one of the default MVC tag helpers, changing its behaviour in some way.  this and subclassing to apply to an additional tag will be done much more than attempting to subclass in order to apply the helper to a different tag (which remains possible through code copying or delegation).