Avoid unhandled Poller exceptions

The changes allow the Poller to avoid provoking unhandled NullReference
or ObjectDisposed exceptions when its attached sockets are closed
improperly. In runtime, these result in irrecoverable crashes. An
alternative to the fixes is to perform sanity checks in the
Socket.Close() method and throw exceptions accordingly.
Merge pull request #143 from KyleRudy/master

Avoid unhandled Poller exceptions