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_version_manager.h b/quic/core/quic_version_manager.h
index db9f2c5..f45b6da 100644
--- a/quic/core/quic_version_manager.h
+++ b/quic/core/quic_version_manager.h
@@ -48,6 +48,8 @@
   bool enable_version_44_;
   // quic_disable_version_39 flag
   bool disable_version_39_;
+  // quic_supports_tls_handshake flag
+  bool enable_tls_;
   // The list of versions that may be supported.
   ParsedQuicVersionVector allowed_supported_versions_;
   // This vector contains QUIC versions which are currently supported based on