Refactored CodeGeneratorContext to CodeBuilderContext.

- Needed to separate the context's of "generation" and "building" to enable the communication of the TagHelperProvider.
I never really liked the ```.Create``` method on ```CodeGeneratorContext```, it feels ugly since it's the class itself (only has a private constructor).  I'd like to transition to the "new" syntax because it's a more commonly used pattern and doesn't "lose" any capabilities..