Only convert template files to text to allow non-textual files to be included in a template repo

I was getting errors about illegal byte sequences when trying clone a template.

This commit separates template files and regular files, storing their contents as ByteStrings, and only converts the template files to Text for templating.

TemplateFile and RegularFile are exactly the same save the constructor name used as a flag. There's probably a better way to do this, but this seemed like the quickest route.