dirty word detector revisions. we need
a word-based function, isDirtyWord()
which IDs single words, bigrams and trigrams.
it'll be much faster than the current approach
and won't slow down when the list of dirty
words gets big. we then need isDirtyUrl() to
use the logic in Speller.cpp to split
a url up into composing words to run through
isDirtyWord().