SourceURL now provides two different folders for downloads and archives
Creating directories if they don't exist before copying a file.
Downloaded archives and result bundles are now in different folders
ZincUnarchiveBundleJob now doesn't do any work if the bundle was already there
Don't duplicate URL in log message
Merge branch 'master' of github.com:mindsnacks/JavaZinc into feature/optimizing-unarchive
Merge branch 'master' of github.com:mindsnacks/JavaZinc into feature/optimizing-unarchive

Conflicts:
	src/main/java/com/zinc/classes/fileutils/FileHelper.java
Refactoring
More refactoring
ZincRepoIndexWriter now creates the folders for the index file
Downloaded bundles and unarchived bundles now live in folders relative to their bundle ID
Moved bundle clone logic out of ZincDownloader into its own job
Initial implementation of PriorityJobExecutionService: priority queue that returns futures
Refactoring ZincRepo
Cleaning up PriorityJobExecutionService
PriorityJobExecutionService.isRunning is now public
Don't need to use a concurrent map, as writes only happen from one thread
Scheduler thread is also created using the thread factory
Renamed class to PriorityJobQueue
Custom thread prefix for Zinc