Add CobeStemmer, a simple wrapper around the snowball stemmer
Add a database migration that adds the stem column to tokens
Add the set-stemmer command
Conflate the input with other tokens that have the same stems
Stem new tokens as they're added to the database
Don't stem non-word tokens
Delete existing stems at the beginning of update_token_stems
Use stemWord rather than creating an extra array for stemWords
Move stems into their own table, rather than a column in tokens

This will be a little slower, but it fits a bit better with
future plans.
Add a del-stemmer command
Move stem insertion into its own function
Require PyStemmer, and bump version to 1.2.0
Require exact versions of our dependencies (argparse and PyStemmer)

This commit also fixes the argparse version, which was left at 0.1
after switching from cmdparse.
Initial add of a script to ease development in virtualenv
Refactor out a _fetch_text method for looking up text for token_ids
Improvements to debug logging of candidate replies

* Only mark the exact pivot token, rather than all instances of
  the token found in the reply
* Print the reply score along with the reply text
* Remove the now-unused _get_marked_text()
Create a new memo namespace in each function that uses it
Use scores < 0 to signal that no further processing should occur

Return -1.0 for replies with no tokens or replies that have already
been scored.
Move evaluate_reply out of generate_reply, into reply()

This is preparation for redoing scoring as a larger part of the
reply generation process.
Remove pivot probabilities from pivot choice, use random.choice()

This simplifies the selection and puts more weight on the scoring
algorithm for reply quality.