stubbed D-M Soundex function
broke out tests to test individual functions
broke out reverse option of Soundex as a separate argument
spacing
minor cleanups
set some minimum code lengths
added first cut of Daitch-Mokotoff Soundex
switched D-M Soundex to return a set because order doesn't really matter
added many more D-M Soundex tests and tuned the algorithm to pass all tests
fixed D-M Soundex lowercase vowel set that needed to be uppercase
replaced -1 with '_' for vowels, etc. to block merger of like-coded consecutive consonants
removed consecutive like-coded consonants from returned codes