Add FormTagHelper.

- Added the FormTagHelper.
- Utilized the IHtmlGenerator to share base functionality with the HTMLHelper counterparts.

#1246
could throw away this block completely if you moved the `GetRouteValues()` call (line 58) into the `else` block (just above line 96). that also makes sense in "define variable as close to when you need it as possible" terms.