fix issue 572: match socket xor fd

previously a user could populate into zmq_pollitem_t
- a non-NULL libzmq socket
- a non-zero fd
and the code would search for both types.
this logic also precluded using fd==0

the new semantics only match for fd field if socket field is invalid.
i.e. socket==NULL