Heirarchical templates with same parents use the results of the first render returning for subsequent renderings

If the template cache is persisted between HTTP requests, or even multiple templates rendered in the same request, then if they each use the same parent template using the Heirarchical template includer, the second, third ... requests return the same response as the first template rather than the results of their own template.

e.g. child1 inherits from parent, child2 also inherits from parent, rendering child1 then child2, the second render returns child1.

This appears to be because the hierarchical template is rendered with the first child embedded, and stored in the cachedTemplates array using the parent's template name.

I will submit a pull request with the testcase in and talk about a proposed solution.