Introduced a Template class into the Template SPI.

This is used to create type-safe wrappers of template resources that can be handled by a single template engine.

Also modified the TemplateFacet API to remove redundant methods. We now settle on using a reverse-FQDN based notation for identifying template locations.