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.