Start using stream sockets instead.

With stream sockets, the socket automatically has SO_REUSEADDR set,
detecting a closed non-blocking socket is inherently easier and less
jank, and we have the ability to easily serve TLS sockets in the future.