Allow tcp-server to listen on an exising file descriptor

Adding :fd to `tcp-server` for listening on an existing file descriptor.
This is useful when you want to use it with some process manager like [Server::Starter](http://search.cpan.org/~kazuho/Server-Starter/lib/Server/Starter.pm) or [Circus](https://github.com/circus-tent/circus).

I'm not sure this change is good enough, escpecially `tcp-server` just ignores `bind-address` and `port` if `:fd` is specified.
So, feel free to reject this if you'd like to do by yourself.