The PR does a number of fixes and tidy ups around connection reuse and shutdown.
Primarily, it vendors a fork of quic-go with a fix we have in it (until resolved in the upstream).
Beyond that it:
Adds some more simple integration test cases
multiple tunnels
concurrent requests (some of which timeout)
Makes DialAndServe only respect the context for shutdown (simplifies semantics)
Makes the client reconnect on specific error condition (application error code 1)
Adds signal traps to reverst server with graceful shutdown (makes clients go away on shutdown)
Stops treating context cancelled in roundrobbin set as net err closed (improves connection reuse)
Stops re-using connections on subsequent calls to Dial and this is not correct to do
The PR does a number of fixes and tidy ups around connection reuse and shutdown. Primarily, it vendors a fork of quic-go with a fix we have in it (until resolved in the upstream).
Beyond that it: