protocol/charybdis: Make PRIVMSG handling less magic, closes #23