Add code generation tests for tag helpers.

#72
Addressed code review comments
Changed test tag helper temp names.
Add extensibility point for TH attribute code gen.

- Followed the "decorate" pattern that we use throughout Razor.
- Enabled the CSharpCodeBuilder to decorate 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 TagHelperAttributeCodeGenerator extensibility.

- Tested that we can successfully plugin our own TagHelperAttributeCodeGenerator.
- 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 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 TagName attribute for tag helpers.

- Made it so the TagHelperDescriptorResolver could pull tag name targets from TagNameAttribute's on types.

#120
Test TagNameAttribute functionality.

- Tested the behavior between TagNameAttribute and TagHelperDescriptorResolver (the only consumer of the attribute).
- Made sure to test duplicate and inherited class scenarios.

#120