Caching

This adds caching for the locale JS assets and improves the diagnostic output when asset retrieval/caching goes awry.
I guess that depends on whether you think the directory or the file contained therein is the cache.  Given how the whole thing works, I was thinking the latter, but I'm not committed to it.