added more debugging infomation

I can see a bug, but I do not know where it comes from.
dev-457: separated interval collection and seeding
dev-458: simplified the smem iterator

simpler but less powful.
dev-459: don't hard code the drop ratio

In the old code, if a secondary alignment is 50% worse, it won't be outputted.
dev-460: disallow a cigar 20M2D2I30M in extension

Global alignment does not allow contiguous insertions and deletions, but local
alignment and extension allow such CIGARs. The optimal global alignment may
have a lower score than extension, which actually happens often for PacBio
data. This commit disallows a CIGAR like 20M2D2I30M to fix this inconsistency.
Local alignment has not been changed.
dev-461: added a heuristic for PacBio data

See the comment above mem_test_chain_sw() for details.
dev-r462: refined setting for PacBio; weight flt

The recommended setting in the last commit is wrong. If we can extend a random
seed hit to the full length, we will force the read aligned through break
points, which is wrong. The new setting is better but it may lead to a small
fraction of fragmented alignments.

In addition, I added a filter on the minimum chain weight and tied
min_HSP_score to this filter. It doubles the mapping speed.
dev-463: added option -x to change multiple params

I hate to copy-paste long command line options.
dev-464: preset for pacbio read2read aln
dev-465: a new output format for read overlap

Also moved a few functions to bwamem_extra.c. File bwamem.c is becoming far too
long.
dev-466: simplified chain filtering
dev-467: limit the max #chains to extend
dev-468: fixed a segfault caused by NULL
dev-469: fixed wrong command line prompt
dev-470: don't stop on bwa_fix_xref2() failures

Peter Field has sent me an example caused by an alignment bridging three
adjacent chromosomes/contigs. Bwa-mem always aligns the query to the contig
covering the middle point of the alignment. In this example, it chooses the
middle contig, which should not be aligned. This leads to weird things failing
bwa_fix_xref2(), which cannot be fixed unless we build the contig boundaries
into the FM-index.

In the old code, bwa-mem halts when bwa_fix_xref2() fails. With this commit,
bwa-mem will give a warning instead of halting.
dev-471: fixed a compiling error from last commit
dev-472: get rid of bwa_fix_xref()

This function causes all kinds of problems when the reference genome consists
of many short reads/contigs/chromsomes. Some of the problems are nearly
unfixable at the point where bwa_fix_xref() gets called. This commit attempts
to fix the problem at the root. It disallows chains spanning multiple contigs
and never retrieves sequences bridging two adjacent contigs. Thus all the
chaining, extension, SW and global alignments are confined to on contig only.

This commit brings many changes. I have tested it on a couple examples
including Peter Field's PacBio example. It works well so far.
dev-473: added a few assertions

to make sure the new change works as is expected
dev-474: fixed a typo
dev-475: -F outputs unit score, not raw score