Revert "reverted changes to porter stemmer, because they inadvertently introduced different behaviour of the stemmer"

This reverts commit 2adb08c320052e82366684893600024fb0515a96.
fixes to earlier porter stemmer refactor
added special case to porter stemmer that avoids exceptions being thrown for a handful of perverse non-words
Merge pull request #364 from ExplodingCabbage/master

Same improvements to the Porter stemmer as before, but without the bugs