Avoid Poller crashes

The changes in the pull request 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.