Merged with staden io_lib. Primary changes revolve around adding
multi-threading support to CRAM.

Note that currently this uses its own thread-pooling, meaning that
it's not possible to share threads between MT input of CRAM and MT
output of BAM.
Merged with staden io_lib. Primary changes revolve around adding
multi-threading support to CRAM.

Note that currently this uses its own thread-pooling, meaning that
it's not possible to share threads between MT input of CRAM and MT
output of BAM.