reinstate the give-up-early code.
whitespace fixes for UnknownParent exception.
new threshold logic for levenshtein

it's complicated, so it must be good, right?
changing the case of a letter costs 0.5
switching two adjacent letters costs 1 instead of 2.