Caching

This adds caching for the locale JS assets and improves the diagnostic output when asset retrieval/caching goes awry.
hahaha @mwmiller I suppose that logic is fair enough, I did explicitly ask for Duckpan to be verbose