Refactor FeatureTrack to remove redundant feature finding code

We also tweak the max level finding, because in multi locus view where not all frames have the same levels, we were getting ArrayIndexOutOfBoundsExceptions due to the fact that the level was being found track-wide, instead of just for the specific PackedFeaturesMap
Synchronize packedFeaturesMap

Not sure if this is necessary or helpful

IGV-1944
Fix AbstractDMUtilsTest so the class gets set up properly
Fix AbstractDMUtilsTest so we delete testdir before tests
Properly trim the file:// from file URLs in CommandExecutor

Allow loading of genome only from "load" command, instead of requiring a file as well
Fix bug in logging error, where error message could not be created properly
Move setting gs-token cookie to IGVCookieManager.

This should have the advantage that we don't necessarily need to call through to HttpUtils.openConnectionStream for this cookie to be set
Have genome get passed into FeatureDB.addFeature, rather than using GenomeManager singleton

This is so behavior is correct when changing genomes
Be more specific about what constitutes a GenomeSpace URL
Abort rendering in FeatureTrack.render if packedfeatures not loaded

Previously rendering would not be aborted if we were taking a snapshot. Not sure why that was the case.

Some minor refactoring to use event bus to trigger repaint only when necessary

IGV-1944
Catch IllegalArgumentException, in case we unregister a listener which wasn't registered

IGV-1944
Change file.toPath -> getAbsolutePath (former doesn't exist on Java 6 I think)