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
still a nit: alternative is to provide only empty (for testing) and `TagHelperOutput([NotNull] IDictionary<string, string>)` constructor overloads.  both would initialize `TagName` and `Content` to `string.Empty`.  callers would then consistently use the `public` setters for all properties but `Attributes`.