Fixed off-by-one in string allocation in validtag
Avoid doing stupid things if a bad overlap is given
Try to salvage extra sequences when a minimum overlap is applied

In the case that there are multiple overlaps over threshold, we only
pick the best one and then decide if it is long enough. With this logic,
we pick the best one that is long enough, discarding ones that might be
better scoring if they are too short.