prepare to replace the SAM printing code

This move is dangerous as SAM printing is very complex, but it will benefit in
the long run. The planned change will reduce the redundancy, improves clarity
and most importantly makes it much easier to output multiple primary hits in an
optional tag.
drop an unnecessary member from mem_aln_t
to test the new sam writer...
new code works for SE
replace PE; BUGGY right now!!
drop the old SAM writer
SAM almost identical to 0.7.2
r359: identical output to 0.7.2 (without -a)
r360: output alternative primary alignments in XA
r361: flag proper pair even if multi-primary

Up to here, all the features in my checklist have been implemented.
r362: bugfix - occasionally wrong TLEN

Use the 0.7.2 way to compute TLEN
r363: XA=>XP; output mapQ in XP

In BWA, XA gives hits "shadowed" by the primary hit. In BWA-MEM, we output
primary hits only. Primary hits may have non-zero mapping quality.
r364: bug in mem pairing (no effect with -A=1)

Forgot to adjust for matching score. This bug has no effect when -A takes the
default value.
r365: bugfix - wrong alignment (right mapping)

The bug only happens when there is a 1bp del and 1bp ins which are close to the
end and there are no other substitutions or indels. In this case, bwa mem gave
a wrong band width.
Release BWA-0.7.3-r366
Release bwa-0.7.3a-r367

In 0.7.3, the wrong CIGAR bug was only fixed in one scenario, but not fixed
in another corner case.
r368: bugfix - wrong CIGAR when bridging 3 contigs

In this case, bwa_fix_xref() will return insane coordinates. The old version
did not check the return status and write wrong CIGAR. This bug only happen to
very short assembly contigs.
r369: bugfix - segfault caused by the last change

Sigh... Even the simplest change can lead to new bugs.
r370: suppress "D" at the end of a cigar

This is caused by seeds in tandem repeats, in which case, bwa-mem may not
extend the true seed. The change in this commit is only a temporary cure.
r371: extend overlapping seeds

to avoid misalignment in tandem repeats