Modify plugin specs so we can have multiple outputs

This is general to support cufflinks, but it could be generally useful. A spec can now have multiple output tracks, the user is allowed to name each one.
Create RenameDecoder and CufflinksTranscriptDecoder

Motivation is to have repeatable names for cufflinks plugin output

IGV-1908
Have Cufflinks be a normal DataSourceTrack

Have cli_plugin be able to load a DataSourceTrack, instead of just FeatureTrack
Properly combine output features from GTF file in CufflinksTranscriptDecoder

IGV-1908
Have PluginSources cache

Have PluginDataSource extend from AbstractDataSource to make this happen, and use an internal PluginFeatureSource object.
Use CachingFeatureSource for PluginFeatureSource

IGV-1908
Have DataSourceTrack initialize scale on first data load

IGV-1908
Lots of work trying to handle multiple output tracks, for cufflinks

The dilemma here is we want some caching but not too much. We can't be re-running cufflinks for each mouseover (this commit should fix that issue). However, it's still not obvious how to cache.

IGV-1908