Adding support for a Sequence Dictionary from BAM files

One of the things that's missing from the current ADAM format and tools is the ability to represent and manipulate the "sequence dictionaries" (from the @SQ lines in the SAM / BAM header) which determine the ordering and indexing of the referenceName fields within the records of a BAM file.

We're going to need to represent and handle these dictionaries for anything that works with more than one ADAM file at a time -- two examples would be ADAM comparison tools, and multi-sample methods for analyzing read data.

This request includes an extension to the ADAMRecord schema to include the referenceLength and referenceUrl fields (from the BAM Sequence dictionary), and the definition of a class (SequenceDictionary) which handles multiple sequence records, and mapping between different dictionaries.  I've extended the bam2adam command to extract the sequence dictionary from the BAM header and insert its fields into the ADAMRecords (through a new argument to SamRecordConverter), and I've included two new commands: ListDict (for listing the contents of one of these files) and CompareAdam, for counting the number of identically-aligned reads between two ADAM files even if they have different sequence dictionaries.  

Places that I know of, that probably need review and editing:  
  1. CompareAdam doesn't handle paired end reads, and is a little underpowered at the moment.  We (GenomeBridge) are planning on building a fuller set of tools, using ADAM, to compare and validate the output of multiple pipelines on the same data, but that's not part of CompareAdam (yet).  In the meantime, perhaps CompareAdam would be better as a test? 
  2. We're leaving undetermined, here, whether there should be a "master" SequenceDictionary which is maintained and saved across all ADAM files, and to which each ADAM file's dictionary can be mapped or whether every analysis should also take the sequence dictionary for each component ADAM file as an argument (what we call the "local dictionaries only" approach).