Implement HTTP/2 framing, multiplexed streams, and flow control
Add complete HTTP/2 protocol support (RFC 7540):
- Binary framing layer: 9-byte frame header, all frame types (DATA,
HEADERS, PRIORITY, RST_STREAM, SETTINGS, PUSH_PROMISE, PING,
GOAWAY, WINDOW_UPDATE, CONTINUATION)
- Stream state machine: idle → open → half-closed → closed with
proper state transition validation
- Connection management: preface exchange, SETTINGS negotiation,
HPACK header encoding/decoding, stream multiplexing
- Flow control: per-stream and connection-level window tracking
with automatic WINDOW_UPDATE frames
- TLS ALPN extension: negotiate h2 during TLS 1.3 handshake
- HttpClient integration: transparent HTTP/2 upgrade when server
supports h2, with fallback to HTTP/1.1
- std::io::Read/Write trait implementations for TlsStream
- Comprehensive tests for frame encoding/decoding, stream state
transitions, flow control, connection handshake, and full
request/response cycles
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>