Make 'bam2adam' multi-threaded. Changed default block size to 128mb.

The commit adds two new options to 'bam2adam': -num_threads and -queue_size.
Each thread requested will write to a separate Parquet partition. Adding threads
will improve thoroughput to a point. However, each thread has its own ParquetWriter
which uses -parquet_block_size of memory for caching alone (not counting other
book-keeping overhead). Watch your memory use and GC to help with tuning. The
queue helps prevent the SAM/BAM file reader from blocking when the writers are
flushing blocks to disk.

As reads are processed, the number of reads and the size of the queue are printed.

The default block size has been reduce to 128mb. A larger block size can help
improve read performance at the cost of write performance.
Change bam2adam arguments from vals to vars.
Update ReferencePosition to handle null positions (unmapped reads)