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
fix issue 572: match socket xor fd

previously a user could populate into zmq_pollitem_t
- a non-NULL libzmq socket
- a non-zero fd
and the code would search for both types.
this logic also precluded using fd==0

the new semantics only match for fd field if socket field is invalid.
i.e. socket==NULL
Merge pull request #590 from pijyoi/master

mingw fix: DLL_EXPORT -> LIBCZMQ_EXPORTS
Merge pull request #591 from pijyoi/issue572

fix issue 572: match socket xor fd
Fix code style in zinterface
Fix memory leak in zinterface_list
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.