Added basic support for server sockets

This includes nonblocking and blocking aspects. For nonblocking support, this specifically means that select will indicate that the socket is ready if accept will immediately return with a client socket.

No client options are supported yet. Also, this does not yet support SSL, including wrapping client sockets accordingly; that will be a future branch.