Have AbstractTrack marshall/unmarshall using JAXB.

Additional attributes are added manually using get/restore persistentState.
It would be convenient to simply annotate everything, but there are some issues. The tracks are actually loaded from Resource elements, JAXB insists on creating its own instances either from a no-arg constructor or static factory method. We used the latter for AbstractTrack, not sure if it will extend will to other Track implementations.
Implement somewhat robust method for more JAXB parsing of session attributes

Use JAXB for AbstractTrack, AlignmentTrack, CoverageTrack, and RenderOptions (test added for same). Change session version number to 5

Current implementation still somewhat hacky, we need to copy/paste a single static method into the tracks which are fully JAXB compliant, and add them to a manually kept list in AbstractTrack. Falls back to AbstractTrack when loading an unrecognized track type, should be totally backwards compliant in that regard.
Add session data files
Add legacy support for "shadeBases" option
Refactor so we use @XmlSeeAlso to give track classes to JAXB. Instead of keeping list of known classes for marshalling/unmarshalling, we just try and if it fails we try the superclass recursively.

Use @SubtlyImportant annotation instead of comments, indicating methods which look like the aren't used but actually are (reflectively by JAXB)
Remove unused DataSourceTrack.normalize.

Add getter to call through to CoverageDataSource (add getter there too).
Add test for loading tdf through a session
JAXB implementation for GWASTrack, FeatureTrack, and VariantTrack.

Add unit tests for VariantTrack (still need some for GWASTrack)
This completes the migration of current Tracks to JAXB.

Remove unused field renderID from VariantTrack
Add index file to sorted vcf, wasn't added before
Fix typo bug where unmarshalled color didn't get returned
Remove some dead code and pointless comments
Merge branch 'master' into SessionIO

Conflicts:
	src/org/broad/igv/variant/VariantTrack.java
Merge pull request #27 from broadinstitute/SessionIO

Have Tracks marshall/unmarshall using JAXB when saving/restoring sessions