When bam_read1() returns an error (return value <= -2), propagate that error
to bam_iter_read()'s own return value. Similarly, also propagate it up to
bam_fetch()'s return value. Previously bam_fetch() always returned 0, and
callers ignored its return value anyway. With this change, 0 continues to
indicate success, while <= -2 (which can be written as < 0, as -1 is never
returned) indicates corrupted input.
bam_iter_read() ought also to propagate errors returned by bam_seek().
main_samview() can now print an error message and fail when bam_fetch()
detects that a .bai index file is corrupted or otherwise does not correspond
to the .bam file it is being used with.