Use std::array<char, 16> instead of uint128 for StatelessResetToken.

Using absl::uint128 does not make much sense since this is an opaque piece of
data with a fixed size of 16 octets (that happen to be the same as the size of
uint128), no numerical operations are performed on it.  Keep absl::uint128
within QuicUtils::GenerateStatelessResetToken(), necessary for the hash
computations, but use the new alias StatelessResetToken elsewhere.

This is a follow-up to a drive-by comment at cl/366984087.

PiperOrigin-RevId: 367245431
Change-Id: Ie79796e22ed4b7c6862a55e0280e7943378d559a
diff --git a/quic/core/quic_packets.cc b/quic/core/quic_packets.cc
index a7599cf..5cc593f 100644
--- a/quic/core/quic_packets.cc
+++ b/quic/core/quic_packets.cc
@@ -183,7 +183,7 @@
       nonce(nullptr),
       form(GOOGLE_QUIC_PACKET),
       long_packet_type(INITIAL),
-      possible_stateless_reset_token(0),
+      possible_stateless_reset_token({}),
       retry_token_length_length(VARIABLE_LENGTH_INTEGER_LENGTH_0),
       retry_token(absl::string_view()),
       length_length(VARIABLE_LENGTH_INTEGER_LENGTH_0),
@@ -215,11 +215,11 @@
 QuicVersionNegotiationPacket::~QuicVersionNegotiationPacket() {}
 
 QuicIetfStatelessResetPacket::QuicIetfStatelessResetPacket()
-    : stateless_reset_token(0) {}
+    : stateless_reset_token({}) {}
 
 QuicIetfStatelessResetPacket::QuicIetfStatelessResetPacket(
     const QuicPacketHeader& header,
-    absl::uint128 token)
+    StatelessResetToken token)
     : header(header), stateless_reset_token(token) {}
 
 QuicIetfStatelessResetPacket::QuicIetfStatelessResetPacket(