zmq: add support for TIPC transport

A ZeroMQ application can opt for TIPC based sockets
using the TIPC port name format:
zmq_bind(sb, "tipc://{type,lower,upper}");
zmq_connect(sc, "tipc://{type,inst}");

'type' is the service ID, and 'lower/upper' can be
used for service partitioning or basic load
balancing.

ZeroMQ TIPC transport requires a kernel >= 3.8
(nonblocking connect support for TIPC).

Signed-off-by: Erik Hugne <erik.hugne@ericsson.com>
zmq: add TIPC transport tests

The tests are identical to the TCP ones, only the
addressing is changed.

Signed-off-by: Erik Hugne <erik.hugne@ericsson.com>
ricnewton review comment

Signed-off-by: Erik Hugne <erik.hugne@ericsson.com>
Merge pull request #730 from Hugne/tipc

Tipc support
Merge pull request #731 from mbarbisan/master

Shorten ZMQ_ROUTER_REASSIGN_IDENTITIES to ZMQ_ROUTER_HANDOVER. Also, add...
zmq: narrow condition to include TIPC in build/test

As TIPC transport for 0MQ will only work on post 3.8
Linux kernels where nonblocking connect was added,
we add AC_RUN test to check for this functionality.
Should the test fail, tipc is excluded from build/test.

Signed-off-by: Erik Hugne <erik.hugne@ericsson.com>
Merge pull request #732 from Hugne/tipc

zmq: narrow condition to include TIPC in build/test
Doc examples with zmq_msg_close usage - parameter is 'zmq_msg_t *'

Documentation examples for zmq_msg_get and zmq_msg_more functions have an
incorrect call to zmq_msg_close function - with 'zmq_msg_t' as a parameter
despite 'zmq_msg_t *' is required, so it is impossible to compile these
examples properly.

Also for zmq_msg_get example - declaration of zmq_msg_t variable is added
(like it is done in other examples).
Merge pull request #733 from mingulov/doc

Doc examples with zmq_msg_close usage - parameter is 'zmq_msg_t *'
Fixed issue 578
Fixed issue 578 - corrected type usage
Merge pull request #734 from hintjens/master

Fixed issue 578
zmq: add TIPC manpage

Signed-off-by: Erik Hugne <erik.hugne@ericsson.com>
Merge pull request #735 from Hugne/tipc_docs

zmq: add TIPC manpage
zmq: change TIPC default lookup domain when connecting

By default, TIPC uses a closest first approach to find
a publication that can satisfy your connection request.
Any publication on the local node will automatically
be chosen for all requests, even if you're trying to
spread it out over multiple machines.
We fix this by widening the default lookup scope.

Signed-off-by: Erik Hugne <erik.hugne@ericsson.com>
Merge pull request #736 from Hugne/lookup_domain

zmq: change TIPC default lookup domain when connecting
Removed over-long pauses in tests

- used msleep (10) in most places instead of zmq_sleep (1)
- may cause failures on slower machines
- to change, modify SETTLE_TIME in testutil.h
- tested down to 1 msec on fast boxes
Merge pull request #737 from hintjens/master

Removed over-long pauses in tests
Fix race condition on shutdown
Merge pull request #738 from ricnewton/master

Fix race condition on shutdown