Start Suave server on first free port

This looks for the first available port and starts a Suave server on the port. The function is asynchronous and returns the port once the server is started.