Update `HtmlHelper` to use `IHtmlGenerator`

- last bit of #1243; previous commit did not get everything using `IHtmlGenerator`
- make a few more methods available as `internal static` in `DefaultHtmlGenerator`
 - remove `IHtmlGenerator.GenerateOption()`; now `internal static`

nits:
- add `IHtmlGenerator.IdAttributeDotReplacement`
- move `DefaultHtmlGenerator.IdAttributeDotReplacement` after constructor
- move `HtmlHelper.ActionLink()` below static methods
- move newly-`internal` methods together in `DefaultHtmlGenerator`
- correct placement of `DefaultHtmlGenerator.GetValidationAttributes()` comment
He got it in earlier, I looked it over.  Code was for the most part.  Made changes to return tag builders always so they could be used both by html helpers and tag helpers.