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.
Generate five random tokens in _babble

This allows scoring to get a better chance at finding the best
response.
Replace the other same-stem words when conflating stems

Store the words that stem to the same thing in a tuple in pivot_set
rather than as individual tokens.

This keeps a word that stems to the same thing as many others
from dominating the pivot choices.
Avoid an extra copy of input_ids, check for None in filter_pivots
Keep use of collections.deque internal to follow_chain
Add one to the mod index in get_random_word_token

This fixes a bug where the last token in the database would never
be selected.
Remove the score < 0.0 check

It complicates some already hard to read code, and it doesn't
provide enough of a short-circuit to be a real performance
benefit.
Fix storage issues in the memo hash

Mappings for token_ids to text were stored in two places.