Add new markovmix nicks
Correct error due to markovmix syntax change
Misc. pattern updates/fixes
Allow nikkybot to use DecBot's new !qfind command (find quotes)
Preferred keyword update
Config update
Fix problem recognizing nicks with - (and hoping this doesn't yet again break something else)
Switch backend to PostgreSQL in an attempt to improve performance
Fix syntax error in pattern
Naive attempt to reconnect if PostgreSQL server connection drops or server is restarted (it's not great, but will work for now)
Add 'nerd' to preferred keywords
Total revamp of Markov data storage in the DB:

- Data is stored in much less space with one table instead of
  16 per personality.  Duplicate rows are simply inserted
  repeatedly rather than trying to have a count value; this
  doesn't actually seem to cost that much in practice, and it
  preserves the automatic-weighting aspect of word selection
  while simplifying the code and allowing fast execution.

- Corpus training of large amounts of text is extremely fast.

- SQL queries are used to find chains of any order from 2 to 5
  using a single table per person.  Chains can start with any
  length 1-4 words and be built with an independently-settable
  chain order forward and backward, unlike the original
  implementation which required the chain length and order to
  match.  This also simplifies the Python code logic.

- With proper multicolumn indeces, lookups are quite fast.

- With this and greatly lowering the recurse limit for bot
  chats, ?botchat takes much less time to run, just a minute
  or two usually, rather than several to dozens of minutes.
Remove stray code from the markovmixai module which is incorrect
for nikkyai and would have thrown an argument count error
Pattern table cleanup
Eliminate random leading/trailing spaces on output lines
Increase botchat response max line lengths
Pass replies to markovmix AI correctly
Keep personalities data up to date when reloading AI module
Change name of DB used
Avoid errors due to attempted operations on None when no response is generated