Add TagHelperRunner for TagHelper runtime.

- The TagHelperRunner is responsible for calling into the process methods of the TagHelpers.
- This involved adding the following core classes: TagHelper, TagHelperExecutionContext, TagHelperOutput, TagHelperContext.  All of which aid in running TagHelpers.
- Tested TagHelperRunner, TagHelperOutput and TagHelperExecutionContext.

#154
nit: pattern elsewhere is
``` c#
  #pragma warning disable 1998
  public async Task ExecuteAsync([NotNull] ViewComponentContext context)
  {
    Execute(context);
  }
  #pragma warning restore 1998
```