Problem: Client blocks on destroy if no messages pending on dealer

Solution: return -1 to interrupt zloop on $TERM

@hintjens 
Please look this over and see if I just missed some other mechanism already in place to do this.  The code where this fails is actually the client test generated by zproto:
```c
    //  @selftest
    zactor_t *client = zactor_new (myclientclass, NULL);
    if (verbose)
        zstr_send (client, "VERBOSE");
    zactor_destroy (&client); // this line blocks forever
    //  @end
```
The marked line blocks "forever" because the `s_client_handle_cmdpipe` ends and there is no readable socket to trigger the poll of the zloop again (unless a message arrives on the dealer).

EDIT: Added another commit patching up a memory leak in this same area