Add debugging for mergeAllele() callsites in addAllele()

The messages helped me to understand and verify just how the allele
management happens.

I put the debugging at the callsites instead of in mergeAllele() itself
so that the messages can, for example, identify *which* mergeAllele()
call in a local scope and include more than one previous allele when
useful.

The first callsite (mergeAllele/1) is DEBUG2 because it's likely to be
orders of magnitude more frequent and less useful than the other
callsites.

It's a little gross to pass in the Parameters object to
RegisteredAlignment's constructor, but a better way wasn't obvious to
me.
Respect maxComplexGap when reference alleles are added in small lengths

If a non-reference allele would extend a complex allele, the last part
of the complex allele must be either a non-match or a match of less than
the maxComplexGap (-E / --haplotype-length).  This prevents the alleles
(1X, 1M, 1M, 1M, 1X), when sequentially added with addAllele(), from
being merged into a complex allele 1X3M1X if the maxComplexGap is less
than 3.  The case of sequentially adding the alleles (1X, 3M, 1X) is
already handled in an earlier conditional block which checks if
newAllele.referenceLength > maxComplexGap.

In the case when maxComplexGap would be violated, the complex allele is
split in two, with the second part being the final embedded match, and
the new allele (a non-reference allele) is simply pushed onto the list.
Merge branch 'respect-max-complex-gap-more' of https://github.com/MullinsLab/freebayes into MullinsLab-respect-max-complex-gap-more
debug2 for very-frequent calls
Merge branch 'MullinsLab-respect-max-complex-gap-more'
Merge branch 'master' of github.com:ekg/freebayes