Accept socket to create Thrift server transport

The original Thrift transport unconditionally creates it's own listen
socket. In order to be socket activated or gracefully restart without
closing the listen socket, create a new server transport constructor
that accepts the socket as a dependency.