Add TagHelperDescriptorResolver implementation.

- Added a basic TagHelperDescriptor creation mechanism to the TagHelperDescriptorResolver.
- Added an ITagHelperTypeResolver to be responsible for determining valid TagHelper types.

#99
Add tests to verify TagHelperDescriptorResolver functionality.

#99
Add TagHelperRunner for TagHelper runtime.

- This involved adding the following core classes: TagHelper, TagHelperExecutionContext, TagHelperOutput, TagHelperContext.  All of which aid in running TagHelpers.

#154
Test TagHelperRunner, TagHelperOutput and TagHelperExecutionContext.

#154
Add TagHelperScopeManager for runtime.

- Also added an interface ITagHelperScopeManager so we can activate the type via DI.

#155
Test TagHelperScopeManager functionality.

#155
Add TagHelperTypeResolver.

- The TagHelperTypeResolver is responsible for determining the format of lookup text's used throughout the tag helper system.  By default it handles the following formats:
"assemblyName"
"assemblyName, #.#.#.#"
"assemblyName, #.#.#.#, specificType"
- It also restricts what types are considered TagHelpers.  In this implementation we only accept public, non-nested, non-abstract, non-generic TagHelpers.
- Added tests to validate the expected functionality.

#158