Only raise ClientConnectionError in one place

If we raise it on the write and read callbacks, the libev event hub will
trigger the exception twice. There might be a better way to do this,
like canceling the callback in the libev hub implementation. However, it
looks like this is attempted but the exception still fires.

This change seems to work with both event hubs. I'll try to add some code that demonstrates the issue.