Tokenize queries and do fuzzy matching

See tests for some examples of how this works. The gist is that typing `q` will offer `sample:GQ` as a completion. After much experimenting, I found that doing fuzzy match on the last token and exact match on the others worked pretty well.

Lots of changes here, but I think overall this results in clearer code (hopefully!).

The `mocha-clean` dep cleans up long mocha stack traces.

Fixes #240 
This is a pretty funky use of `i`, which is out of scope for all intents and purposes. You're just seeing it the last token is an exact match--`s/i/shortTokens.length - 1/` seems to make this clearer?