Make QuicSpdyStreamBodyBuffer manage consuming HEADERS frame header and payload.

Rename QuicSpdyStreamBodyBuffer::OnDataHeader(), update documentation, and rely
on it to calculate when HEADERS frame header and payload bytes need to be
consumed (but still call QuicStreamSequencer::MarkConsumed() from
QuicSpdyStream).  Rip out MaybeMarkHeadersBytesConsumed() and
headers_bytes_to_be_marked_consumed_ from QuicSpdyStream, which are hacky and
cannot be extended to take care of PUSH_PROMISE frames and unknown frames.

gfe-relnote: n/a, change to QUIC v99-only code.  Protected by existing disabled gfe2_reloadable_flag_quic_enable_version_99.
PiperOrigin-RevId: 260059055
Change-Id: I0b457e57e81a12693726a82050dafcefb08e96c8
diff --git a/quic/core/http/quic_spdy_stream_test.cc b/quic/core/http/quic_spdy_stream_test.cc
index 20c1b65..5b2ca81 100644
--- a/quic/core/http/quic_spdy_stream_test.cc
+++ b/quic/core/http/quic_spdy_stream_test.cc
@@ -2098,8 +2098,7 @@
       HeadersFrame(QuicTextUtils::HexDecode("00002a94e703626172"));
 
   // All HEADERS frame bytes are consumed even if the frame is not received
-  // completely (as long as at least some of the payload is received, which is
-  // an implementation detail that should not be tested).
+  // completely.
   OnStreamFrame(QuicStringPiece(headers).substr(0, headers.size() - 1));
   EXPECT_EQ(headers.size() - 1, NewlyConsumedBytes());