The commits in this pull request modify the RPC-connection handling code in such a way that listening for and accepting of incoming connections is performed asynchronous (reading/writing is still synchronous).
This allows for listening on multiple sockets at once, which I use in one of the other commits to implement dual IPv4/IPv6 support.