fix poll() mutability and make it possible to construct PollItems

Two things:

1) zmq_poll() indicates which PollItem is ready by modifying the `revents` field. Therefore, its signature should reflect that `items` must be mutable.

2) `Socket::as_poll_item()` gives us a way to construct a `PollItem`, which was previously impossible because `Socket::sock` is a private field.