Default implementation of SocketAcceptorManager that uses
a thread per acceptor approach.
Note that on some OS/JVM combinations soTimeout must
be set to non-0 value or else the ServerSocket will never get out
of accept() system call and we wont be able to shutdown the server
socket properly.