Add TagHelper parse tree visitor.

- The visitor looks for TagBlock's that match registered TagHelpers and rebuilds them into TagHelperBlock's.
- Added the code generator and corresponding chunk for a TagHelperBlock.
- Added syntax tree specific objects & helper methods to create accurate tag helper structures.

#71
Fix test to work with TH rewriters.

- Added understanding to the ParserTestBase for TagHelperBlock's
- Added a helper class MarkupTagHelperBlock to make building test TagHelpers easier.
- Fixed some existing tests that "new"d up the RazorParser and didn't obide by the new contract (to provide optimizers).

#71
Add tests to verify TagHelperParseTreeVisitor.

- Added tests to validate TagHelperParseTreeVisitor when dealing with valid HTML elements.

#71
Refactored CodeGeneratorContext to CodeBuilderContext.

- Needed to separate the context's of "generation" and "building" to enable the communication of the TagHelperProvider.
Add Microsoft.AspNet.Razor.Runtime src and test project.

#136
Rebased onto latest dev.

- Fixed tag helper parse tree visitor rebase error.
Create TagHelper specific C# code Generation.

- Added TagHelperChunk generation.
- Added CSharp visitors to understand TagHelperChunks and render corresponding C# code.
- Refactored some code in the CSharpCodeVisitor so it could be utilized in other classes.
- Added a CSharpFieldDeclarationVisitor to render declaration pieces for TagHelper's
- Added metadata to represent specific TagHelper code generation constructs.

#72
Add code generation tests for tag helpers.

#72
Add extensibility point for TH attribute code gen.

- Enabled the CSharpCodeBuilder to create the CSharpCodeVisitor which exposes a CSharpTagHelperCodeRenderer which is indirectly used to render attribute values.
- Fixed up some existing classes that just new'd up the CSharpCodeVisitor class to instead take in the decorated version.

#119
Add test for TagHelperAttributeValueCodeRenderer extensibility.

- Tested that we can successfully plugin our own TagHelperAttributeValueCodeRenderer.
- Moved some existing TagHelper test logic into its own base type to enhance code reusability.

#119
Add @addtaghelper directive.

- Also added some infrastructure pieces for it such as the ITagHelperDescriptorResolver and the default implementation TagHelperDescriptorResolver which will be filled out in a later commit.
- Reworked some extensibility points to allow accessibility of the descriptor resolvers per offline discussions.

#111
Add tests to validate @addtaghelper directive.

- Fixed existing tests to work with new RazorParser.
- Validated directive syntax tree creation, errors and code generation.

#111
Add TagHelperDescriptorResolver.

- This involved also adding a TagHelperTypeResolver and TagHelperDescriptorFactory.
- 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"
"specificType, assemblyName"
- It also restricts what types are considered TagHelpers.  In this implementation we only accept public, non-nested, non-abstract, non-generic TagHelpers.
- The TagHelperDescriptorFactory is responsible for converting a Type to a TagHelperDescriptor.
- Added tests to validate TagHelperDescriptorResolver, TagHelperTypeResolver and TagHelperDescriptorFactory.

#99
#158
Add tests to validate TagHelperDescriptorResolver.

- Tested the descriptor resolver and its underlying dependencies (TagHelperTypeResolver and TagHelperDescriptorFactory).

#99
#158
Updated versions for runtime project.
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 ContentBehaviorAttribute for TagHelpers.

- Added detection of custom ContentBehaviors via the ContentBehaviorAttribute in the TagHelperDescriptorFactory.
- Updated some comments in the ContentBehavior enum.
- Add tests to validate custom content behavior resolution.

#122