Server: caching improvements

- Cache perl module status (DDG/App::DuckPAN) for 4 hours, by default
- Similarly cache __all__ downloaded assets (including the HTML pages)
- Add option `--cachesec`/`-c` to control cache lifetime.  `-c=0` is very similar to `-f`
- Reorganize asset-holding attributes to make it easier to understand how and where to add them
- Use a standardized way to pull from cache and concatenate (if necessary), including type-specific comments on whence they come
- Path::Tiny objects pushed "closer to the top" for easier reasoning about the files
- Error out (and delete cache) when file is not fully received
- Add download progress bar for more human-friendly output.
- Minor improvement to, and expanded use of, exit_with_msg