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
Got it.
Still, neither the current code nor the comment makes the intent clear.  Why doesn't `base.Accept()` always get called?  Put another way, _why_ ignore most `ChuckBlock` nodes and skip to its children?  Since you might not be the next person to create a new `ChunkBlock` subtype, might be better to beef up the visitors for existing `ChunkBlock` types to ensure they visit their children.