Merge pull request #187 from mvala/master

Fixing example chat.c app
Tracking changes to zsock_signal()
Merge pull request #188 from hintjens/master

Tracking changes to zsock_signal()
Problem: need to know if zyre_start() failed

Following #714d80 in CZMQ, it's now possible to detect when the
current system does not support beacons. Now we need to know at
the Zyre app level if beaconing is broken.

Solution: expand zyre_start() to return a status code, 0 if OK,
-1 if beaconing is broken. We use this in the selftests to skip
if the system looks broken.

Test case is a laptop with WiFi switched off, and no ethernet, as
the loopback interface does not do UDP broadcasts and thus cannot
work for beaconing.
Merge pull request #189 from hintjens/master

Problem: need to know if zyre_start() failed
Problem: need public names for nodes

The generated UUID is good for routing but is nasty for log file
analysis. The solution is to add a user-provided node name that is
not used for routing (so does not need to be unique) and is passed
to peers along with other properties.

This is a fairly deep change as it breaks the draft protocol v2 and
also the API ENTER message:

* Added "name" string field to HELLO message (see zre_msg.xml)
* Added "name" field to all messages returned to API (see zyre.c)
* By default, name is first 6 characters of UUID
* zyre_set_name () lets app set its own node name before zyre_start()
* zyre_name () is a new API call to get node's own name
Problem: applications need to set beacon interface

Using zsys_set_interface() is fragile as this may change later, and
we may want different interfaces per zyre instance.

Solution: wrap the zsys_set_interface() method at the Zyre API level.
Merge pull request #190 from hintjens/master

Added support for node names
Separate control and message traffic

Some API commands like START and UUID and NAME expect a reply. If
there is cluster traffic (ENTER, SHOUT, etc.) arriving at the same
time then the API gets confused.

Solution: create a second socket pair (inbox/outbox) and pass the
outbox to the zyre_node_actor. All API commands still use the pipe
as normal, and then cluster traffic comes over the outbox/inbox
pair.

Fixes #191
Merge pull request #192 from hintjens/master

Separate control and message traffic