performance tweaks for Poller

before, peaked around 50k msgs/sec, after around 110k msgs/sec
performance tweaks for socket

don't deep-inspect closed state on every method, only the `closed` property.
fix unregistration with new list

unregister is now up to O(N), but that's much better than poll() being so.
Poller.sockets is a list
add `Poller.__contains__`

and use it in a test, rather than giving the appearance that `sockets` is a public API.
Merge pull request #381 from minrk/pollperf

minor performance tweaks to poller

Give a ~2x improvement for the simple case of a single Socket on my laptop (2.5 GHz i5, OS X 10.8.4).

- before: around 55k msgs/sec
- after: around 110k msgs/sec