First work on getting an nth order chain

It now stores tuples of words, like

{("The",): {"sky": 1.0, "is":1.0}, ("The", "sky"): {"is": 1.0}, ...}

Only the database generation has been written so far.
Merge branch 'master' into nth-order
Use defaultdict to remove complicated logic
Show the seed on StringContinuationImpossibleError
Typo: Should load the dbfile
Make things picklable
Store the empty string also as a tuple
Fix generateString to use the nth-order Markov Chain

The strategy is to just try n words, and then n - 1 words, and so on. It is
probably a little innefficient, as it doesn't really keep track of what the
max n might be.

generateStringWithSeed is not updated yet.
Fix generateStringWithSeed
Remove database file

It isn't even valid any more anyway
Merge pull request #11 from asmeurer/nth-order

Merge in support for Nth order markov chains