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
this comment seems to conflict w/ the one at line 137.  I suspect "can" is an important part of the `buffereableAttribute` description and the definite "does not" here is important.  might just need "(does not) actually (contain)" here if I'm on the right track.