bam_alt: heavy changes in API and implementation

the BAM module now uses an special representation of alignment
records, which is hardly parsed. The idea is to avoid unnecessary
parsing like CIGAR, sequence or quality decoding if it's not
necessary.

Also added more tests, which check the contents of alignments.