fix return code tests on zmsg_encode()

zmsg_encode() returns size_t, so it is invalid to test for a return
value less than zero here. In fact, zmsg_encode() doesn't appear
to return an error at all, even if malloc(3) fails, it will return
the buffer_size that was computed from the zmsg.

For now, silence warnings from clang by detecting a return code of
0 from zmsg_encode() as an error. Also, errno isn't set, so don't
try to use it.
fix warning about invalid initialization in hostlist.c

The clang compiler detected this bug in hostlist.c

485    char *p = '\0';

Actually, `p' didn't need to be initialized in this function, so
just remove the invalid initialization.
optparse: fix invalid error check in optparse_create

The return code for optparse_add_option() was checked against '< 0'
instead of '!= OPTPARSE_SUCCESS' in optparse_create. Fix it and
silence warning with clang compiler.