handleQuit now records the reason on the connection, and cleanup
passes it to BroadcastQuit, the same service call the HTTP API's
QUIT uses. A QUIT without a reason still gives Client quit. A
connection that ends without a QUIT still gives Connection closed.
The relay test that expected Connection closed for a bare QUIT now
expects Client quit.
Model: opus-5-5