Add `pending` property to indicates need ZMQ_POLLOUT…

When use 'PUSH/PULL' type sockets, if 'SNDHWM' exceeds, then `_flush()`
will not write the messages to underly zeromq socket but buffer them.
When underly socket queue became drain, we need `_flush` these buffered
message. But current version doesn't do this...

BTW: Added support for zmq3.x TCP keepalive.