Add :dont_truncate option to IRCBot.send()
Avoid truncation in Menu
Implement multi-line command output in Help
Implement multi-line keys output in MapDoc
tmp Convert IRCBot to proper unloadable plugin

Finally it's possible to
1) start program without loading IRCBot plugin
2) stop without getting SIGINT in random places inside plugins
3) properly unload plugins on stop
4) configure IRCBot reconnect delay

Downsides:
1) Not sure how being not in main Ruby thread will affect
performance and latency.
2) My braindead PluginManager implementation completely fails at
initializing plugins dependency order. Since now IRCBot is no longer
guaranteed to be started last, it may lead to some spectacular fails.
tmp Use hacky load_all_plugins to ensure initialization order
Add Console plugin
Fix pinyin regex in CEDICTEntry

Correct parsing of entries like
上 上 [shang3] /see 上聲|上声[shang3 sheng1]/
Get rid of unused replyTo() in Message classes
Add common interface for message classes
Migrate plugins from deprecated botcommand
Add common interface for message user classes
Add common interface for message emitter classes
Rename IRCListener to BotCore::Listener
Associate reply_array directly with message in WebBot
Add Sequel and Sqlite3 gems and update dependencies
Add SequelHelpers module
Migrate EDICT to Sequel+Sqlite
Migrate ENAMDICT to Sqlite+Sequel
Migrate CEDICT to Sequel+Sqlite