Added decoding checks for the most obvious of sam parsing failures.

Note that some of these cannot be done in bam_read1 due to it not
having enough information (no header), so they are performed in
sam_read1 instead.

The auxiliary tag checking needs far more work, and is only done in
sam_format1 at present. I'm not sure there is a way to make this check
efficient given that a lot of calls to sam_read1 may not care to
decode auxiliary data. Instead we maybe just need to have a set of
standard auxiliary tag parsing functions and make sure all have
appropriate error handling.
Removed old comment from earlier code.
Merge branch 'develop' of https://github.com/samtools/htslib into develop
Further fixing of auxiliary tag decoding.
Added the ability to do samtools index on a CRAM file.

This is not the same as being able to use the index. This has not been
added yet.
Merge cram_index_build() from github.com/jkbonfield/htslib

bam_index_build() now also works with CRAM files, though this might not
be the ideal place to plug into index-building.  This merge also brings
various consistency checks mostly around reading aux fields.
l_qname is unsigned, so is always >= 0

Probably some of the other fields being checked here ought to be
unsigned too, but that's a story for another day...