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.
Merge pull request #399 from VineetReynolds/template-api

Introduced a Template class into the Template SPI.