[Design] 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
`TagBuilder` might not be perfect but it does have a few bits`TagHelper` devs will miss:
- a method to generate a sanitized `Id` attribute value from a name
- a method that sets `Content` to HTML encoding of a `string`
- a method to merge classes into the `@class` attribute
- (perhaps) methods to merge attribute collections into an existing `TagHelperOutput`