stemming!

closes #5 

Sorry about the craziness!
Maybe the `to_ascii_lower` could be factored out, and passed directly to `stemmed_word_is_correct`:

```rust
self.words.contains_equiv(&w) ||
    !w.chars()... || {
    let lower = w.to_ascii_lower();
    self.words.contains_equiv(&lower) ||
        self.stemmed_word_is_correct(lower.as_slice())
}
```

And then `stemmed_word_is_correct` could then skip doing it itself.