Adding a function to give the canonical read name, defined as the
concatenation of the read group identifier and the read name.

DuplicateScoringStrategy: a class to help with picking a non-duplicate
from a set of candidate duplicates.

SAMRecordSetBuilder: many improvements to support more complex SAMRecord
creation.

Code cleanup in SortingCollectionTest

We are adding utilties to support Picard's MarkDuplicatesWithMateCigar,
   but put them here as they may be generally useful to folks.
   DiskBackedQueue: a queue for SAMRecords that stores the records in
   memory until a limit is reached, and then writes them to disk.  The
   queue returns records only when the consumer has set the given record
   as examined.  We also added other classes to support this utility.