Cope with cram_compress_slice failing. We were unwinding the stack
returning -1 each time, but then called cram_close which attempting to
flush any remaining data (dying in the process). We now free the
current on-going container upon an error, to avoid this flush later.

Fixed the cram_compress_block code so it doesn't end up thinking a
failure to compress with bzip2 or lzma (say, because they're not
linked in) means the zero sized output is the best compression option
to use.
Removed the need for -DSAMTOOLS when compiling CRAM.

The Io_lib and HTSLib sources are now divergent enough that there is
no need to try and keep common files between the two with #ifdefs.
Ugly auto-configuration of HAVE_LIBBZ2 and HAVE_LIBLZMA definitions.