Template model

Refactor the two template-path fields in `Email` to be a single reference to `EmailTemplate`.

`EmailTemplate` includes the ability to specify a path to a text/html template, or to enter a template directly into the text field. This is intended as a way to make defining emails through the admin interface a more straightforward process.

This commit also introduces logic for rendering the templates correctly, and for sending a text email if only text is provided, and an html email if html is provided.