Refactor socket.tcp_server() to use nice fiber names

socket.tcp_server() changes:

 * Set nice fibers names for listener and clients
 * Use only one address for bind
 * Return single socket instead of wrapper
 * Add opts = {} to arguments
 * Automatically remove UNIX domain socket on server:close()

Other changes:

 * Fix buggy port number parsng for ipv6
 * Add peer address to accept() results like recvfrom()