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.
Cosmetic cleanups and added zinterface man page
Added contributor guidelines
Was not building against ZeroMQ v2 or v3
Use prime numbers for hashtable sizes.
Split out hash table resizing into static function.
Add limit on the chain length in hash tables.
Document table design.
Merge pull request #579 from hintjens/master

Problem: zauth and zbeacon don't work with new zsock API
Merge pull request #593 from mrvn/pull-prime_table_size

Pull prime table size
Merge pull request #592 from ahhentz/zinterface

Fix style + bugfix in zinterface
Code cleanups

- please do not use Tabs for indentation (read CLASS style guide)
- moved long list of prime numbers to separate header file for ease
  of reading zhash.c.
Fixed include path for czmq.h
Rewrote zmonitor to use zactor

- renamed existing zmonitor -> zmonitor_v2
- renamed zsock_monitor -> zmonitor
- related cleanups in zauth
Merge pull request #594 from hintjens/master

Rewrote zmonitor -> zactor for CZMQ v3
Update zinterface API

Changed the zinterface API to be only stateful, no longer a mix of
stateful and stateless, as per the discussion of #592.