Add HtmlAttributeNameAttribute for TagHelper properties.

- Added the ability to override the HTML attribute name for TagHelper properties.
- Tested functionality of overriding the attribute name target and inheriting the attribute name.

#121
If you were to do:
```C#
public override string Foo { get; set; }
```

I would definitely expect Foo to be pulled from the Html element and not its base classes `HtmlAttributeName` specification; following the same approach of forcing the user to be explicit (just like tagname/contentbehavior).

/cc @DamianEdwards in-case he feels differently.