Housekeeping only, no functional changes

Docstring/whitespace/delete unused methods/reformat data files
Check against null tag (ie cancelled dialog) for AlignmentTrack popup options
Refactor so we cache alignment list and packed alignment rows separately

IGV-2071
Add PackedAlignments which replaces the LinkedHashMap of group name -> packed alignments

Move AlignmentTrack.Row to its own top-level class

IGV-2071
Move ReferenceFrame.Range -> top level class

Make it org.broad.igv.Feature.Range and have it implement Feature
Combine our Interval class and with Range, the two were very very similar
Cache AlignmentIntervals by range, instead of by frame name

Store the Ranges used in PackedAlignments

IGV-2071
Fix bug where SashimiPlot would autoscale using main window

IGV-2071
Much refactoring so we can pack several disjoint intervals at once

This capability is not used yet, right now we just pack lists of size 1

IGV-2071
Implement packing across frames

Note that this is done everywhere, not just in view as pairs mode. Might be a bit less efficient but okay in other modes.

Fix a bug involving packing

IGV-2071
Do not require mates to be on the same chromosome to be packed together

IGV-2071
Avoid totally creating new gene lists when adding a new one

Since we are caching information by frame name this was never a good idea; generating frame names from positions leads to off-by-one sometimes. And when strings are used as map keys, off-by-one = off-by-infinity. We might want to re-think this caching strategy

IGV-2071
Check that rows have been packed in getGroups before returning

IGV-2071
Have sortAlignmentTracks return true/false depending on if tracks were sorted

They would return false if data still loading/packing
Have dealt with issues of changing frames/genelists somewhat

Still aren't caching right, sometimes the screen is blank

IGV-2071
Change AlignmentsCache -> PositionMap

Make it a general map for storing by position (via Range object), going to use it to cache PackedAlignments as well

IGV-2071
Use PositionMap to cache PackedAlignments

IGV-2071
Cache packed alignments by alignment range, not frame range

This is so we don't repack on every scroll

IGV-2071
When building list of IntervalLists for packing, make sure not to add duplicates

Having duplicate elements in the list fed to AlignmentPacker screws up the packing

IGV-2071
Modify LRUCache so we don't keep instance map

Clearing all caches is dangerous (which seems to be the point of the instance map), and could cause problem with CommandExecutor clearing it whenever there was low-ish memory. Want to use LRUCache for caching alignment data, clearing that cache whenever memory was low would be counterproductive and could lead to infinite loop
Have LRUCache use a hard reference for the map