Problem: zmsg_dup returned NULL on empty msg

- now returns an equivalent empty message
- _dup should not change the semantics; empty != NULL