raise ENOTSOCK instead of ENOTSUP on closed sockets

more consistent with underlying libzmq behavior

cffi backend already behaved this way, just change cython to match.
Merge pull request #524 from minrk/enotsock

raise ENOTSOCK instead of ENOTSUP on closed sockets
use req/rep to synchronize before pub/sub
Merge pull request #525 from eguven/improve_pubsub_example

use req/rep to synchronize before pub/sub
add ZMQVersionError for features that require libzmq newer than linked

subclass of NotImplementedError
Merge pull request #522 from minrk/zmq-version-check

add ZMQVersionError for features that require libzmq newer than linked
Remove erroneous term(linger) from CFFI backend
don't use deprecated socket_type in monitoredqueue
Merge pull request #530 from minrk/socket_type

don't use deprecated socket_type in monitoredqueue
Merge pull request #528 from minrk/term-linger

Remove erroneous term(linger) from CFFI backend
don't set copy=False in recv_string
Merge pull request #532 from minrk/recv_string_copy

don't set copy=False in recv_string
pull upstream changes to zmq.ssh from IPython
Merge pull request #529 from minrk/ssh-upstream

pull upstream changes from IPython
fix inappropriate use of Py_ssize_t

Py_ssize_t != size_t, so casting void* to Py_ssize_t could result in OverflowErrors.
Merge pull request #534 from minrk/size_t

fix inappropriate use of Py_ssize_t
docstring for ZMQVersionError
add ZMQVersionError to api docs
add 14.2.0 to changelog
release 14.2.0