Use template context variable for categories loaded from template tag

There was a clash on the `ProductCategoryView` where the view was passing
in a 'categories' binding but it was getting clobbered by the
`category_tree` template tag.

This fix uses a different 'as' name with the template tag and also moves
the loading of the template tag to the appropriate template.

Fixes #660
Add simple caching of the category tree template node

This is useful as the template tag is sometimes loaded twice on the same
page.
Fix broken {% endblock %} tag