Reimplemented SortedBamReader: now reads all reads into memory and sorts them there.
Allows mixed BAM files containing paired-end and single-end reads.
COMPLETELY UNTESTED!