Rectify build system.

Remove code copied from ocaml-uint and properly use provided
headers instead.

Additionally, remove duplicated ZMQB library and only leave ZMQ.
Add #ifdef custom_compare_ext_default to accomodate newer OCaml.
Reflect newly added zmq_ctx_* function family in the binding.
Upgrade deprecated APIs.

ZMQ_IPV4ONLY was replaced with ZMQ_IPV6.
ZMQ_DELAY_ATTACH_ON_CONNECT was replaced with ZMQ_IMMEDIATE.
Implement all missing getsockopt/setsockopt options for 4.0.
Wrap zmq_z85_* family of functions.
Wrap zmq_curve_* family of functions.
Get rid of ZMQ.Illegal_argument.

As per OCaml conventions, this exception is replaced with
`Invalid_argument "fn_name"' or, when the codepath is unreachable,
either `assert false' in OCaml or `abort();' in C.
Rename ZMQ.Context.term to ZMQ.Context.terminate.
Add missing STREAM sockets.
Add a finalizer for ZMQ.Context.t, calling ZMQ.Context.terminate.
Get rid of --enable-runtests, as OASIS already handles --enable-tests.
Merge support for zmq stream types and zmq peer authentication
Update examples to match new API, and remove open statements