Respect max complex gap more

Two commits, primary commit message:

> 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.

Note [the TODO](https://github.com/MullinsLab/freebayes/commit/3a7bd48d6f962bac21a23857fe757d90716786d3#diff-a053a9d78ea79eb96e426fd07c79e9dfR1108).  This was not important to my usage, but it is for general correctness.  It should be easy enough to scan the new cigar after splitting and check for non-X operations, demoting to MNP or SNP if appropriate.

The fix resolves a number of bad haplotype issues I saw when using freebayes with `--haplotype-basis-alleles`.