Posix errors raise Unix_error

Unless handled by ZMQ itself as ZMQ_exception.

This is as per the suggestion of @whitequark, though I cannot see
how it was implemented before.

Not totally sure about the parameters given to Unix_error.  They
are not very informative.

It does get lwt-zmq and iocaml back up and running.