Problem: string buffers aren't NULL checked

Have found some places where memory is allocated and not NULL checked.
I have not touched the auto generated engine for zgossip which is also not checking for NULL pointers from strdup.

Tests pass locally.
is it the same with ```char *str = zmsg_popstr (msg);``` ? E.g. you have to check for a empty *str end not a empty str?