Server: improve retrival and caching code reuse

Two areas had essentially identical code, so extract that into a
single method.

Also, improve the output of the extract code to help with diagnostics
when things go awry.
Server/Web: cache locales JS.

This makes things much faster when on a slow connection.  Or so I hear.
Server: make failure to cache a fatal error.

Also, cleanup and improve the logging code around that area a tiny bit.
Server: Unify internal/external name distinction.

We had this concept in a less useful way with the `%assets` hash.
We'd prefer to have them all have similar characteristics so we (and
the code!) can reaosn about what is going on.

With this nearly everything is cached locally, which makes for a better
experiencefor those on slow links. Let's assume those people exist.
Server: remove extraneous cache_path output.
Server: show how we come to find those sub_assets.
Server: update verbose messages.

This might make it easier to pair them up and understand what is
happening.
Server: remove errant backtick.
Merge pull request #127 from mwmiller/caching

Caching