[IZPACK-907] Use JarFile instead of JarInputStream in JarMerge

This avoids a problem with JarInputStream not being able to read JAR files wrapped to ".exe"-files using launch4j.

I have also combined the two merge() methods to avoid code duplication. They basically differed only in the flavor of ZipOutputStream they took as parameter.