feat(server): Add ephemeral listen port option

When binding a socket to port 0, the OS will select an available
unprivileged port.  This use useful mainly for dev/test to avoid
possible port conflicts.

The Listeners just need to be created earlier so the dynamic
ports can be propagated to client URL fields.