in VCF-based construction, properly handle a complex indel case

Where we have multiple insertions at the same position, they will have the same
start and end positions. If we were to allow them to link to each other, we
could end up with infinite series of insertions, effectively loops in the graph
that violate the partial ordering property expected of VCF. This fixes the
issue by 1) keeping track of alleles by start position, and using these to
build connections between successive variants, and 2) preventing connections
between alleles that have the same start and end position, whene they are at
the same position.