Multiple changes mostly for speed improvements:
- token document works on substrings
- creating inverse index gets tokens instead of ngrams
- specialize ngram creation for 1grams
- StringDocument can work with MutableString
- optimize stemmer for handling substrings and words
- fixed stemmer building through bindeps