Soundex algorithm, taken from Knuth, Vol. 3 “Sorting and searching”, pp 391–2
25.2 Usage
— Function: soundex name
Performs the original soundex algorithm on the input name. Returns the
encoded string. The idea is for similar sounding sames to end up with the same
encoding.