Add VCFEncoder, for writing out variants

We re-organized one plugin interface, which is why so many files are altered.
Have command line tokens before executable path (e.g. java -jar) be stored in list of elements

This way we don't have to split by a string token and worry about splitting wrong (e.g. paths with spaces in them)
Write snpEff plugin

Added machinery to export variants, and load response from plugin as a VariantTrack. This also meant adding header-reading ability to our decoding codecs
Display message to user when error found in error stream started by RuntimeUtils.exec
Add ability to remember command line inputs in preferences
Modify plugin decoders to read header but remember lines

We had this problem with tribble codecs before, because one never knows how long a header is, typically they just keep reading until they hit lines which no longer look like headers. This often means missing the first data line. This was solved by opening a separate stream on the file. We can't do that for plugins which read from stdout, so we create a custom LineReader which stores each line once it's been read for later retrieval. Not sure how useful this is generally but it should work for this purpose.
Change Tile -> toTDF in igvtoolsgui
Switch all uses of SeekableStreamFactory -> IGVSeekableStreamFactory
Implement IGVSeekableBufferedStream
Partial rollback of commit 699df0bc8c690fde7073752d148dd7759f100baf
 (Modify bigwig and bigbed readers so they open and close streams as needed, instead of leaving them open. add tests).
Add dispose() method to Track and DataSource.  Purpose is to release any resources (e.g. file handles) allocated exclusively to respective object.   Method is called upon track removal and application shutdown.  Implemented for BigWigDataSource to close file.
Have CoverageCounter only output comments/track line at beginning of wig file

Previously we were outputting lines like:

track type=wiggle_0
#columns: pos, count

at the beginning of each chromosome.

Now we do that only at the beginning of the wig file, and the #columns line is only output if it's not standard wig
Fix minor bug in IGVSeekableBufferedStream
Added test files
IGV-1966.  SVG output bug (encoding was not set)
Bug checking file extension for type