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.