Add loop detection heuristic

Currently, our assembler doesn't have a loop detection heuristic that is used during haplotype creation; instead, we quit once we've built a haplotype that is longer than a certain length (2x the reference length). It is more efficient to quit early once we've looped through a repeat many times, instead of generating super-long haplotypes.

Later, we'll need to update this heuristic to make it smarter; e.g., when calling repetitive regions, we probably want a higher threshold. See #68.

Depends on #63, #64, #65, and #66.