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
We also utilize the `TryGetPlainTextValue` for the Html attributes which have no attribute descriptors and therfore they assume that the value is "bufferable", in order to combine the `isUnbufferedAttribute` functionality we'd need to force the function to also take the property type which doesn't make sense for HtmlAttributes unless we want to just pass in a dummy string type, not sure if that's worth it..