Template node runtime: phase 5 - use single TemplateProcessor (and its cache) per generation step. TEE is per-thread/per-root context, and can't be used for step-wide things. Hence we pass actual environment everywhere we apply template node/macro
Introduced knowledge about TEE into TemplateContext. Now, there are 3 context levels: TemplateGenerator (model and step level), TemplateExecutionEnvironment (root/thread level) and TemplateContext (rule, template and template fragments). Each level is 1-to-n to the next one.
Deprecate QueryExecutionContext.isApplicable
Pass updated TEE with TemplateContext, so that actual ReductionContext is available to TEE.copyNodes