Stemming

This adds stemming support through the [rust-stem](https://github.com/mrordinaire/rust-stem library, using the [Porter stemming algorithm](http://tartarus.org/martin/PorterStemmer/).

r?
Also, these match arms can be written as a single expression: `Ok(s) => self.words.contains_equiv(&s.as_slice()...)` and `Err(_) => false`.

It can be reduced further to:

```rust
stem::get(w).ok().map_or(false, |s| self.words.contains_equiv(&s.as_slice().to_ascii_lower()))
```