Support marking duplicates including PE reads that cross chromosomes

This commit also:
o Adds a new operation, adamReadPairs(), to RDD[ADAMRecord] which
  groups the reads into ReadPair objects
o Adds new duplication metrics to the 'flagstat' command that show
  primary/secondary alignment, read/mate mapping and cross-chromosome
  duplicate reads
o Speed improvements (~10%) to the AvroSerialization class
o Adds a new class, ReferencePositionWithOrientation, which captures
  the read orientation as well as the position. Supports calculating
  the 5' position.
o Adds support for 5' position calculation to ReferencePosition class
o Removes the unused MatedReferencePosition class
o Fixes the default block size in adamSave() from 512mb to 128mb
o Adds phred score calculation to RichAdamRecord