quic: provide source conn ID when creating server conns

New server-side conns need to know a variety of connection IDs,
such as the Initial DCID used to create Initial encryption keys.
We've been providing these as an ever-growing list of []byte
parameters to newConn. Bundle them all up into a struct.

Add the client's SCID to the set of IDs we pass to newConn.
Up until now, we've been setting this when processing the
first Initial packet from the client. Passing it to newConn
will makes it available when logging the connection_started event.

Update some test infrastructure to deal with the fact that
we need to know the peer's SCID earlier in the test now.

Change-Id: I760ee94af36125acf21c5bf135f1168830ba1ab8
Reviewed-on: https://go-review.googlesource.com/c/net/+/539341
Reviewed-by: Jonathan Amsterdam <jba@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
diff --git a/internal/quic/conn_id_test.go b/internal/quic/conn_id_test.go
index 63feec9..314a6b3 100644
--- a/internal/quic/conn_id_test.go
+++ b/internal/quic/conn_id_test.go
@@ -578,8 +578,11 @@
 		p.preferredAddrV6 = netip.MustParseAddrPort("[::0]:0")
 		p.preferredAddrConnID = testPeerConnID(1)
 		p.preferredAddrResetToken = make([]byte, 16)
+	}, func(cids *newServerConnIDs) {
+		cids.srcConnID = []byte{}
+	}, func(tc *testConn) {
+		tc.peerConnID = []byte{}
 	})
-	tc.peerConnID = []byte{}
 
 	tc.writeFrames(packetTypeInitial,
 		debugFrameCrypto{