Replace absl::optional with std::optional in QUICHE.

Chrome has switched to those two types being the same, so we don't have any reason to use the Abseil version anymore.

PiperOrigin-RevId: 580345251
diff --git a/quiche/common/wire_serialization_test.cc b/quiche/common/wire_serialization_test.cc
index 9abdda9..6c8267f 100644
--- a/quiche/common/wire_serialization_test.cc
+++ b/quiche/common/wire_serialization_test.cc
@@ -5,12 +5,12 @@
 #include "quiche/common/wire_serialization.h"
 
 #include <limits>
+#include <optional>
 
 #include "absl/status/status.h"
 #include "absl/status/statusor.h"
 #include "absl/strings/escaping.h"
 #include "absl/strings/string_view.h"
-#include "absl/types/optional.h"
 #include "quiche/common/platform/api/quiche_expect_bug.h"
 #include "quiche/common/platform/api/quiche_test.h"
 #include "quiche/common/quiche_buffer_allocator.h"
@@ -101,16 +101,16 @@
 }
 
 TEST(SerializationTest, SerializeOptionalValues) {
-  absl::optional<uint8_t> has_no_value;
-  absl::optional<uint8_t> has_value = 0x42;
+  std::optional<uint8_t> has_no_value;
+  std::optional<uint8_t> has_value = 0x42;
   ExpectEncodingHex("optional without value", "00", WireUint8(0),
                     WireOptional<WireUint8>(has_no_value));
   ExpectEncodingHex("optional with value", "0142", WireUint8(1),
                     WireOptional<WireUint8>(has_value));
   ExpectEncodingHex("empty data", "", WireOptional<WireUint8>(has_no_value));
 
-  absl::optional<std::string> has_no_string;
-  absl::optional<std::string> has_string = "\x42";
+  std::optional<std::string> has_no_string;
+  std::optional<std::string> has_string = "\x42";
   ExpectEncodingHex("optional no string", "",
                     WireOptional<WireStringWithVarInt62Length>(has_no_string));
   ExpectEncodingHex("optional string", "0142",