log incoming messages in the right place

do not assume that the user is using Process, he might be calling Read()
himself
do not loop forever when draining messages
do not drain remaining messages

calling c.error should close chQuit which causes Send to fail
store the raw ctcp message
add error handling to all send functions

make send functions blocking and return write errors.