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
Nope, this portion will not change as far as instrumentation goes.  Since we're in a writing scope the content "may" never make it to the output stream so it doesn't make sense to notify instrumentation of data that may never be written.  Not to mention it expects the data to be written which then would make this completely wrong.