Fixes #248. Should fix most edge cases too.

Fixes #248 

Basically, I'm converting the input to a list of lowercase words.

When I get a capital letter, I add a space before it. When I get a `-` or `_` character, I replace it with a space. Then, I remove all the extra whitespace, make everything lowercase and split on the space character.

```
Here Is my_phoneNumber => ["here", "is", "my", "phone", "number"]
```

After that, the individual filters just work on the list of tokens.