the `__enter__` and `__exit__` are used to provide the same functionality in the jinja2ext, but I havent cleaned up that code enough to add it to the PR.


the self.parent is for when the that jinja2 `{% cache %}` block is nested in a `:memoize_with_context`  

tbh I hadn't thought about the fact that `:memoize_with_context` could be nested too ... should fix that too ;-)