Replace SDLNet code with system sockets

Hollinski and I have discussed these matters, and we've found that SDLNet isn't really fit for use, as we need more control and options for the sockets.
When the listening socket is in non-blocking mode you will need to specifically handle `EAGAIN` AND `EWOULDBLOCK`. The current behavior of simply breaking out the loop is fine. However other errors should be handled correctly in that case. They cannot simply be ignored, otherwise you end up calling accept() over and over, each time returning the same error.