This allows named templates to be added, for example:
interface HandlebarsTemplates {
specialListOfThings: HandlebarsTemplateDelegate;
}
So the strongly typed version can be used.
var template = Handlebars.templates.specialListOfThings;
The compile function returns a template function. The template function takes two parameters, `context` and `options`. These are both optional parameters. This commit fixes `context` to be optional.
This enables each definition to have a readme if necessary.
Also a .json metadata file to help with package managers.
And last, to have different versions of the definitions.