Add OnConnectionCloseFrame, invoked to save ConnectionCloseFrame data

OnConnectionClose is invoked prior to the actual connection-close logic, and thus saves the ConnectionCloseFrame data prior to any method actually needing to access the data.

Note that there was one such method in GfeQuicClientSession. It saved the data in QuicSession. This means that GFE application code performed a quic/core function -- not desirable. This CL eliminates that reach-back, making for a somewhat cleaner separation of application and transport functions.

Note that this CL is outsized because quic_connection-test.cc had to be modified in many places to expect a call to OnConnectionCloseFrame. There is no logic of functional change to the tests.

gfe-relnote: Not flag protected, is not a functional change.
PiperOrigin-RevId: 268334183
Change-Id: I46bc4dca31d861162d860f03d4f896a41e75445f
diff --git a/quic/core/quic_session.h b/quic/core/quic_session.h
index 1475532..5250f9b 100644
--- a/quic/core/quic_session.h
+++ b/quic/core/quic_session.h
@@ -548,10 +548,6 @@
   void set_largest_peer_created_stream_id(
       QuicStreamId largest_peer_created_stream_id);
 
-  void set_error(QuicErrorCode error) {
-    on_closed_frame_.extracted_error_code = error;
-  }
-
   QuicWriteBlockedList* write_blocked_streams() {
     return &write_blocked_streams_;
   }