Rework the template code and drop closures
Context: #4 (closed) The old code was passing around closures to keep scope, because when I wrote it I didn't understand go's scoping.
The new templating uses a global map[string]*"html/template".Template
to map filenames to html/template
Template objects. This simplifies the code a lot, and also lets us use go templating instead of trying to force %s
printf formatting.