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
- "TagHelper" in three of the four "VariableName" field names adds nothing.  class already has "TagHelper" in its name.
- I prefer shorter, completely descriptive names like `__executionContext` but it looks inconsistent.  if we're _sure_ Razor will need other runners, etc., then `__tagHelperExecutionContext`.  otherwise, `__stringValueBuffer`, `__scopeManager`, and `__runner`.