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.