Refactor: Further simplify decide_remark logic

Check for presence of preferred keywords in input
lines from public channels.  Make random response
chance based on one of those two outcomes.
Hopefully, the effect will not be noticeable, and
this simplification will make further refactoring
easier.
Try to avoid truncating state file to 0 bytes if
first NikkyAI() hasn't been created yet
Return correct types for manual markovs
(should be str, not list)
Properly pass add_response parameter from reply()--fixes
infinite loop during pattern recursing
!ignoresax "Easter egg", which overrides "more like"--just because I like trying to surprise people
Refactor: Moving check_output_response loops to upper-level funcs not really doable
because of lower funcs like pattern_reply requiring it to be done sometimes
but not always.  To make up, document the funcs better as to whether or not
they actually call check_output_response
Refactor: Fix misc. FIXMEs

* Raise Dont_know_how_to_respond error in pattern_reply
rather than calling markov_reply (fallbacks should be
left up to caller)

* Move failmsg handling from _markov_reply to
markov_reply (fixes failmsg feature in patterns)

* Can't move input == output check to
check_output_response since the latter only gets
proposed output and doesn't know the input; leaving
this one alone

* Remove unneeded message-empty check in _markov_reply
(same ultimate result occurs without it)
Refactor: Eliminate pointless looping in manual Markov funcs
Update/clean up the to-do list
Make empty message check more concise and Pythonic :-)
For some reason my hostmask keeps changing :-P