Refactored CodeGeneratorContext to CodeBuilderContext.

- Needed to separate the context's of "generation" and "building" to enable the communication of the TagHelperProvider.
Razor doesn't use any sort of DI sadly, therefore this is how end-information is passed.