Improve generation performance by not blowing the cache for every input file.

HandlebarLoader keeps a cache of mustache templates to speed up resource loading.
This makes the cache static over multiple input files.

Timing the old code
$ time java -jar $oldjar -v  -l scala $files &> /dev/null

real	0m15.544s
user	0m20.705s
sys	0m0.758s

Reusing the cache:
$ time java -jar $jar -v -l scala $files &> /dev/null

real	0m5.239s
user	0m8.884s
sys	0m0.360s

TODO: add benchmark scripts.
What are the problems caused by this? It's static, not global. The cache works only if it survives across many invocations, so it needs to be static, even if it's passed in from some context.