Merge pull request #575 from hintjens/master

Define class export explicitly
Create function zsock_sendmem

Helper method to ease sending a chunk of memory with a zsock.
Improves documentation for zactor class

Adds remark about expected behavior of actor function.
Merge pull request #580 from ahhentz/new_features

Create function zsock_sendmem
Merge pull request #581 from ahhentz/documentation

Improves documentation for zactor class
Adds zinterface class.
Fix memory leak in s_get_interface on Windows.
Merge pull request #585 from ahhentz/zinterface

Adds zinterface class.
Fix memory leak in s_get_interface on Windows.
Merge pull request #586 from ahhentz/bugfix

Fix memory leak in s_get_interface on Windows.
zbeacon: Use zinterface_list() in s_get_interface()
Fix memory leak in zinterface_list() for Windows.
Fix an infinite recursion in zsys_init().

zsys_init() was getting in an infinite recursion if called with any of
the following ENVVARS set:
- ZSYS_INTERFACE
- ZSYS_LOGIDENT
- ZSYS_LOGSENDER
Merge pull request #588 from ahhentz/zinterface

zbeacon: Use zinterface_list() in s_get_interface()
Merge pull request #589 from ahhentz/bugfix

Some bugfixes
Problem: zauth and zbeacon don't work with new zsock API

These two classes demand a ctx argument, and it's impossible for apps
to pass the zsys singleton argument.

Solution: allow callers to pass NULL if they're using the new zsock
API. Then zauth and zbeacon will fetch the context from zsys.

Fixes #574

For next steps, I think we have to deprecate zauth and zbeacon in
their whole, and write new classes on zactor. I can't migrate zauth
to zactor without breaking existing applications (as they have to
use the same API for socket creation). So perhaps a new class,
zguard, and deprecating zauth along with the other v2 classes.

For zbeacon, it's easier as the entire class can be rewritten to
zactor and end up as a single function with an actor-style message
API:

    zactor_t *beacon = zactor_new (zbeacon, "9999");
    zstr_sendx (beacon, "SET INTERVAL", "250", NULL);
    zframe_t *frame = zframe_recv (beacon);
    ... etc.
Problem: selftest left socket dangling, if no networking

Solution: destroy service socket before exiting selftest; also had to
destroy shadow context properly to avoid deadlock at exit.
Implemented zauth using actor style

This cleans up the confusion between V2 and V3 APIs for zauth. If you are
using zctx and zsocket, then you will use the old V2 API in zauth_v2.
If you are using zsock, then you will use the new V3 API in zauth.

Also did various other small cleanups, particularly on on logging.
Improved zgossip API documentation

Note: the zgossip.h file is generated; this improvement was actually
made in zproto and then the files here regenerated.