Split QuicEndpoint into QuicEndpoint and QuicEndpointBase. QuicEndpointBase handles network I/O integration, while QuicEndpoint handles writing test data into the session. This allows running custom sessions with meaningful semantics using the QUIC simulator. gfe-relnote: n/a (test-only change) PiperOrigin-RevId: 276154770 Change-Id: Iff8778578cb484182fd28ea51d263a636651b943