Reuse the channel within the same fileclient
Convert firing events to channels
Remove print from debugging
Make the master Mworkers more robust to bad clients

Today if you create a client that does

```
import zmq

context = zmq.Context()
socket = None
while True:
    del socket
    socket = context.socket(zmq.REQ)
    socket.connect('tcp://127.0.0.1:4506')
    socket.send('foo')
```

Each asymetric call will cause a master process to go defunct. This patch will catch those exceptions, log them, and rebind the worker zmq socket.
On error in SREQ, reset the socket. This will fix all cases where the master is too busy and we leave the socket in a state where we've done a send but not a recv.
Re-add missing send, my editor messed up in weird ways when i did an "undo" apparently i missed this one ;)
be consistent with the _
Merge pull request #13155 from jacksontj/conserve_channels

Conserve channels