A mishmash of changes for CRAM v3.0 (not yet the default output
format). Sorry it's munged together.

The 'b' and 'q' feature types have been implemented, allowing multiple
bases and qualities to be stored as a single feature. This greatly
speeds up scramble -x mode (referenceless) while also reducing the
file size.

Added support for the BYTE_ARRAY_LEN encoder. It already existed in
decoder, but it is optimal for some cases to use as encoder instead of
the usual BYTE_ARRAY_STOP.

Bug fix to the external decoders. If there is an attempt to decode 0
bytes then it no longer matters if the block does not exist. (This
comes about when faced with silly CIGAR strings like "0S".) Changed
scramble to no longer output empty blocks.

Cram_dump: this now outputs the compression types used for each
external block as g(gzip), b(bzip2), l(lzma), r(rANS0) and R(rANS1).


git-svn-id: svn://svn.code.sf.net/p/staden/code/io_lib@3677 ba6f2710-ca9f-427c-89d3-5bf716dbc8e1
Improved open_trace_file (RAWDATA, REF_PATH, etc) to handle URLs
without the URL= component and to also gloss over the : vs :: issue in
http://server:port/foo/bar.



git-svn-id: svn://svn.code.sf.net/p/staden/code/io_lib@3678 ba6f2710-ca9f-427c-89d3-5bf716dbc8e1