Homogenize CTCP handling for IRCv3

Closes #356. Also moves all the parsing into a single file, so that
maybe it can be tested someday.