Create TagHelper specific C# code Generation.

- Added TagHelperChunk generation.
- Added CSharp visitors to understand TagHelperChunk's and render corresponding C# code.
- Refactored some code in the CSharpCodeVisitor so it could be utilized in other classes.

#72 

I split up the test portion of this PR to reduce noise.  PR: https://github.com/aspnet/Razor/pull/135
One reason why it's nice to have the type names activated in Razor is because we can control "if" they're injected depending on if we find TagHelpers. If these existed in Mvc we'd always be injecting them even for pages that had no tag helpers.  I do see the value in having them outside of Razor but I think the conditional injection of these guys is more valuable.