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
> The base.Accept does always get called for each chunk
in the case of a non-`TagHelperChunk` `ChunkBlock`, `base.Accept()` is not called since that invocation is in the `else` block.  so you seem to be future-proofing against the base class getting smarter about `ChunkBlock` and its subtypes.