Fixed high CPU usage of XREQ channel.
Previously, the XReqSocketChannel was consuming nearly 100% CPU.
This was caused by the ioloop polling for POLLIN|POLLOUT|POLLERR
always. Now we are only polling for POLLOUT when there is a
message waiting to be sent. This seems to have fixed the problem.
SUB channel _handle_recv is now greedy.
This change is needed so that a single ioloop iteration will
handle all of the messages that have been received. Otherwise
the ioloop has to run multiple time to get everything.