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
at one point it looked as if you thought they all were extensibility points and I thought you intended to add them to `TagHelperGeneratedContext`.  now however the number of extensibility point / configuration requirements seems too high and changing these variable names has very little value.  so I've changed my mind.
I suggest all of these should be `static readonly`, none should have "Default" in their names, and only those referenced elsewhere should be `internal`