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
I take that back since you're using the `textValue` as a C# expression to be directly written out.  this means the name of the function and perhaps `textValue` is horrible.  though multiple `out` parameters aren't pretty, that might be appropriate here -- would at least avoid a `TryGet...` method that sets its `out` parameter to something non-`null` when it returns false.
one approach would be `var isUnbufferedAttribute = TryGetUnbufferedValue(chunk, out unbufferedValue, out isPlainTextValue)`, doing away with the `AcceptsRazorCode()` call here.  note I renamed a variable or two here.