Add support for packages.csv mappings

If packages.csv is found in a mapping directory, the
classes in .srg will be mapped through it. This is an
alternative to reading packages.srg, which isn't present
in the FML distribution (only joined.srg+packages.csv).
Remove support for reading packaged.srg

packaged.srg is created by FML/MCP from joined.srg
and packages.csv. Now that we support reading packages.csv,
remove support for packaged.srg; one fewer codepath.
Add support for remote --in-jar URLs

You can now provide an HTTP URL to --in-jar and
it will be downloaded to a temporary file before
remapping. Example:

java -jar target/SpecialSource-1.3-SNAPSHOT-shaded.jar --in-jar http://assets.minecraft.net/1_4_7/minecraft_server.jar --out-jar /tmp/net.jar --srg-in ../MinecraftForge/mcp/conf/
Update date to 2012-2013
Add support for remote --srg-in mappings

Mappings can now be downloaded from remote URLs. Both
individual .srgs and directories of .srg/.csv are supported.
Examples:

java -jar target/SpecialSource-1.3-SNAPSHOT-shaded.jar --in-jar http://assets.minecraft.net/1_4_7/minecraft_server.jar --out-jar /tmp/net.jar --srg-in https://raw.github.com/MinecraftForge/FML/master/conf/joined.srg
java -jar target/SpecialSource-1.3-SNAPSHOT-shaded.jar --in-jar http://assets.minecraft.net/1_4_7/minecraft_server.jar --out-jar /tmp/net2.jar --srg-in https://raw.github.com/MinecraftForge/FML/master/conf/
Add --numeric-srg option for using srg names (vs csv) on MCP dirs

Normally, --srg-in on a directory will load joined.srg or
client.srg and server.srg, translated through fields.csv,
methods.csv, and packages.csv, if available. --numeric will
ignore fields.csv and methods.csv, remapping the jar to
the numeric "srg" names instead of descriptive "csv" names.
(packages.csv will still be used if it exists; if you want
flat packaging then specify joined.srg to --srg-in directly.)
Add support for remote --first-jar/--second-jar

Example:
java -jar target/SpecialSource-1.3-SNAPSHOT-shaded.jar --first-jar http://assets.minecraft.net/1_4_7/minecraft_server.jar --second-jar http://repo.bukkit.org/content/groups/public/org/bukkit/minecraft-server/1.4.7/minecraft-server-1.4.7.jar
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.
Fix missing class transformer on reversed mapping directory loading

Loading mappings from directories, with the 'reverse' option, would
not account for repackaging on field names. Add missing transform.
Privatize Jar file and main members; replace with accessors
Refactor Jar resource access and entry list

* Add getResource(), extracted from getClass()
* Remove getInputStream(), using getResource() instead
* Change getEntries() to getEntryNames(), hiding JarEntry
* Store filename for getFilename()
Add support for remapping jar mods with multiple --in-jar

You can now pass multiple filenames to --in-jar, and the files
in the subsequent jars will overwrite those in the previous. This
allows remapping "jar mods", which are distributed as an archive of
a subset of files against a reference jar. For example, Forge
overwrites base classes in Minecraft. Example usage:

java -jar target/SpecialSource-1.3-SNAPSHOT-shaded.jar --in-jar http://assets.minecraft.net/1_4_7/minecraft_server.jar --in-jar http://files.minecraftforge.net/minecraftforge/minecraftforge-universal-1.4.7-6.6.2.534.zip --out-jar /tmp/n/test.jar --srg-in https://raw.github.com/MinecraftForge/FML/master/conf/
Exclude signature files (.DSA, .SF) from remapped jar

The remapped jar is altered and will fail to validate against
the included signatures from the original jar, if any. Normally
not a problem, you can compile against the remapped jar as a library
with no errors. However, when loading the jar from Maven (hit with
the Forge jar), signature validation will fail. Stripping the
signature files fixes this.