o Changed the Levenshtein distance function for Damerau-Levenshtein which, in addition to insertion, deletion and replacement, considers swapping
o added random testing to the distance function
moved the edit distance to its own module and added some random testing and put them in the regular test suite