Add FormTagHelper.

- Added the FormTagHelper.
- Utilized the IHtmlGenerator to share base functionality with the HTMLHelper counterparts.

#1246
weird wrapping makes this hard to read. keep the lambda together e.g.
``` c#
  .Setup(mock => mock.GenerateForm(
      ...))
  .Returns(...);
```