Allow the Server to bind to a random free port.

This change allows `0` to be passed as the port number which causes Node to pick a random available port. This is useful for scenarios where a fixed port isn't guaranteed to be available (like automated build systems).