Refactored CodeGeneratorContext to CodeBuilderContext.

- Needed to separate the context's of "generation" and "building" to enable the communication of the TagHelperProvider.
See both factory-method and `new` for contexts here. What's the right pattern and why?