Merge with Staden io_lib head:

Fix for cram encoding of files containing no @SQ lines (due to
entirely being unmapped data).
Merge with Staden io_lib:

Bug fix for range queries of unmapped reads. We now set the end
coordinate to be the start coordinate instead of -1.

Also moved the slice cross-reference resolving code from cram_to_bam
to a sub-function called by cram_decode_slice itself. This means that
we can resolve cross-references for reads partially used in a range
query. (Previously a fetching back a sub-range would leave mate_flags
uninitialised.)

Bug fixes to cram index handling.

- The binary search found *a* slice containing the requested range,
  but it wasn't guaranteed to be the first slice. Consequentially we
  sometimes missed some reads.

- Fixed a crash where repeated calls to cram_seek_to_refpos could
  reuse freed containers.

- Also improved documentation after scratching my head at the code,
  forgetting it was based around a nested containment list.