Modified Casava18ReadNameEncoder to correctly display filter status.  Previously it was treated as "passing filter" when in fact Illumina's intended meaning in the read name is "is filtered" (i.e. does *not* pass filter).  The enum for the field has also been renamed to more accurately reflect its content.
Correctly parse newer Illumina read names (since CASAVA 1.8)

While the default READ_NAME_REGEX will correctly parse both old and new
Illumina read names, the optimized parse using split() only correctly
parses old names.  Since the default regex is never actually used,
update the split()-method to detect the read name format and use the
appropriate indexes.

An incorrect parse leads to an overwhelmingly large amount of reads
having the same apparent tile and X coordinate, with only the Y coordinate
varying.  This, in turn, can cause massive slowdowns when identifying
optical duplicates when there are lots of duplicates in the file.

See <http://en.wikipedia.org/wiki/Fastq#Illumina_sequence_identifiers>.
Add an option to skip optical duplicate detection

It may be desirable (or necessary, time-wise) to skip this step when
there are a *lot* of duplicates.  The duplicate detection loop slows
down quick when the groups under consideration get too large.

Note that this will affect the accuracy of the library size estimate.
Short-circuit on already-marked duplicates in findOpticalDuplicates()

If an index is already marked as an optical duplicate, don't bother
checking if we should mark it as such again.  This only skips through
the inner loop, not the outer loop, so it's not a huge win.
Minor polishing of external pull request regarding optical dupe detection.
Eliminate separate option for suppressing optical dupe detection -- just set READ_NAME_REGEX to null to suppress.
Fix usage for READ_NAME_REGEX -- change field numbers to 1-based.
Add package-visible method to get number of optical dupes from MarkDuplicates object for testability.
Add unit test to confirm that null READ_NAME_REGEX works.
Add unit tests for both regular and casava 1.8 style read names.
First version of a large-memory fifo buffer class.
Fix oversight in SANITIZE block resulting in NPE if there's only one read group.
Modified MathUtil to have better named and more useful functions

added a unit test for the haplotypeProbabilities
Addressed changes requested by reviewer.
Moved SortVCF to public
Generalized MergeVcfTest and added a unit test specific to SortVCF

MergeVcfTest had many of the input-validation tests I wanted to perform on SortVCF as well.

Did some minor cleanup to SortVCF as well.