Improve parameter handling in Server.listen.

As `Server.listen` forwards all its arguments to `net.Server.listen`, it would be reasonable to expect that it behaves in the same way as `net.Server.listen`. However, due to specifics of argument forwarding, the callback does not currently fire if one calls `server.listen(port, callback)`. This change modifies the forwarding so that any combination of parameters valid for `net.server.listen` will make the callback fire.