Fix: msg_unlisten does proper cleanup.

Previously, at least on windows, calling msg_runloop after closing the
last conn via msg_unlisten would cause some degree of freaking out.
Specifically, WSAENOTSOCK since we'd call select on a closed socket.