Refactor how TLS versions get enabled

This brings it closer in line to how QUIC_VERSION_99 is handled and sets up the
flag to be switched to a reloadable flag (blocked on being enabled). In particular,
AllSupportedVersions() now returns versions that include PROTOCOL_TLS1_3 for the
handshake_protocol.

When a TLS version is in use, it is safe to assume that
ParsedQuicVersion::KnowsWhichDecrypterToUse always returns true. This is because
KnowsWhichDecrypterToUse is enabled for QUIC_VERSION_47 and above, while TLS versions
only exist when CRYPTO frames are in use, which is currently only transport version 99.

gfe-relnote: refactor of TLS version code; protected by quic_supports_tls_handshake
PiperOrigin-RevId: 250599516
Change-Id: Ibfe68d74089ce29edeee219671c81e1643702000
diff --git a/quic/core/quic_dispatcher_test.cc b/quic/core/quic_dispatcher_test.cc
index 2477e50..df29bca 100644
--- a/quic/core/quic_dispatcher_test.cc
+++ b/quic/core/quic_dispatcher_test.cc
@@ -191,15 +191,10 @@
   QuicDispatcherTest()
       : QuicDispatcherTest(crypto_test_utils::ProofSourceForTesting()) {}
 
-  ParsedQuicVersionVector AllSupportedVersionsIncludingTls() {
-    SetQuicFlag(FLAGS_quic_supports_tls_handshake, true);
-    return AllSupportedVersions();
-  }
-
   explicit QuicDispatcherTest(std::unique_ptr<ProofSource> proof_source)
       :
 
-        version_manager_(AllSupportedVersionsIncludingTls()),
+        version_manager_(AllSupportedVersions()),
         crypto_config_(QuicCryptoServerConfig::TESTING,
                        QuicRandom::GetInstance(),
                        std::move(proof_source),
@@ -353,8 +348,6 @@
     return std::string(client_hello.GetSerialized().AsStringPiece());
   }
 
-  std::string SerializeTlsClientHello() { return ""; }
-
   void MarkSession1Deleted() { session1_ = nullptr; }
 
   MockQuicConnectionHelper mock_helper_;