Revert removal of some structured bindings and selection statements with initializers.

Revert part of cl/387364180.  At that time these C++17 features were banned in
Chromium and did not compile.  They have been allowed since then, see:

* structured bindings
  + https://crrev.com/c/3356325/
  + https://groups.google.com/a/chromium.org/g/cxx/c/ExfSorNLNf4

* selection statements with initializers:
  + https://crrev.com/c/3360661
  + https://groups.google.com/a/chromium.org/g/cxx/c/4GP43nftePE

Note that the initializer cannot be moved back into the if statement in
OgHttp2Session::ResumeStream() because a line accessing `it` has been added
afterwards since.
PiperOrigin-RevId: 428049860
diff --git a/http2/adapter/oghttp2_session.cc b/http2/adapter/oghttp2_session.cc
index a3dd8b8..eef7a5f 100644
--- a/http2/adapter/oghttp2_session.cc
+++ b/http2/adapter/oghttp2_session.cc
@@ -1,7 +1,6 @@
 #include "http2/adapter/oghttp2_session.h"
 
 #include <cstdint>
-#include <tuple>
 #include <utility>
 
 #include "absl/memory/memory.h"
@@ -791,9 +790,7 @@
                 static_cast<int32_t>(max_frame_payload_)});
   while (connection_can_write == SendResult::SEND_OK && available_window > 0 &&
          state.outbound_body != nullptr && !state.data_deferred) {
-    int64_t length;
-    bool end_data;
-    std::tie(length, end_data) =
+    auto [length, end_data] =
         state.outbound_body->SelectPayloadLength(available_window);
     QUICHE_VLOG(2) << "WriteForStream | length: " << length
                    << " end_data: " << end_data
@@ -885,9 +882,7 @@
   while (!sequence.empty()) {
     MetadataSource& source = *sequence.front();
 
-    int64_t written;
-    bool end_metadata;
-    std::tie(written, end_metadata) =
+    auto [written, end_metadata] =
         source.Pack(payload_buffer.get(), max_payload_size);
     if (written < 0) {
       // Did not touch the connection, so perhaps writes are still possible.
@@ -1589,8 +1584,7 @@
 
 void OgHttp2Session::MarkDataBuffered(Http2StreamId stream_id, size_t bytes) {
   connection_window_manager_.MarkDataBuffered(bytes);
-  auto it = stream_map_.find(stream_id);
-  if (it != stream_map_.end()) {
+  if (auto it = stream_map_.find(stream_id); it != stream_map_.end()) {
     it->second.window_manager.MarkDataBuffered(bytes);
   }
 }
@@ -1601,9 +1595,7 @@
       [this, stream_id](size_t window_update_delta) {
         SendWindowUpdate(stream_id, window_update_delta);
       };
-  absl::flat_hash_map<Http2StreamId, StreamState>::iterator iter;
-  bool inserted;
-  std::tie(iter, inserted) = stream_map_.try_emplace(
+  auto [iter, inserted] = stream_map_.try_emplace(
       stream_id, StreamState(initial_stream_receive_window_,
                              initial_stream_send_window_, std::move(listener)));
   if (inserted) {
diff --git a/http2/adapter/test_frame_sequence.cc b/http2/adapter/test_frame_sequence.cc
index 074e3dd..ed9018a 100644
--- a/http2/adapter/test_frame_sequence.cc
+++ b/http2/adapter/test_frame_sequence.cc
@@ -12,9 +12,8 @@
 std::vector<Header> ToHeaders(
     absl::Span<const std::pair<absl::string_view, absl::string_view>> headers) {
   std::vector<Header> out;
-  for (const auto& header : headers) {
-    out.push_back(
-        std::make_pair(HeaderRep(header.first), HeaderRep(header.second)));
+  for (auto [name, value] : headers) {
+    out.push_back(std::make_pair(HeaderRep(name), HeaderRep(value)));
   }
   return out;
 }