Move loadMappings() dir/file logic to JarMapping

Instead of in the command-line interface.. this allows
other code providing an interface to SpecialSource to
easily pass user-supplied options for loading mappings.
Save downloaded files to non-random temporary filenames

Fixes repeated downloads filling up your disk.
Add caching for remotely downloaded resources

Mappings or jars downloaded from http URLs given to --srg-in or
--in-jar, --first-jar, --second-jar, will be cached locally in
a temporary directory, and reused on subsequent invocations if
present. The cache can be invalidated with --force-redownload.