More testing and fixes for git wrapping

Change-Id: I1d5217d5a9c821f9fe9a5e3a595ce2a8458020cc
Extract helper method.

Change-Id: Ib8c9ef4b5d3ec47ea31f6f807e727eaba2d191c0
Add method to get file contents at a given revision

Also remove the checkout method we no longer need.
Change-Id: I7fe117cc518a20967c48c0647fbbd37ca10aa250
Implement a repo based email template loader

This add libfritter as a submodule in order to start using it.
The loader looks up the given file at the given revision within the
repo and then creates an EmailTemplate around that content.

Change-Id: I80538c28cc6502c859827a3f271a944193546222
Add a script to preview all the templates in a given commit

Similar to the script of the same name in the libfritter repo, but
gets the template contents from the given repo and commit reference.

Change-Id: Iae7d9b3ff34d9866ad0878867502f2e0a5792283
Remove unused method

Change-Id: I9ed566a9b336ef7c2d7acae4076b3e15dcf8fce1
Only preview valid templates

Specifically, those which are .txt files. Even then, print any errors
we hit while loading the files -- it's much more useful to do this
than to stop at the first hurdle.

Change-Id: I753e295258c4072f8887f396e01e4a31becd41af
Support loading utf-8 content from git repos

Assume that everything is utf-8, which is probably good enough for
the moment. This also means that we can just use plain quoted
literals for comparisons to the returned data under both Python 2
and Python 3.

Change-Id: I7a91388297b425c4e839aa99f39e50a043ad7bb1