Pre-create Config objects in benchmarks to measure protocol hot paths
Config.__init__ calls dictConfig() on every construction, which
dominated benchmark time (~70% for httptools). Pre-creating configs
at module level removes this setup noise so CodSpeed measures the
actual protocol work.
Restore has_close_header tracking
keep_alive can be False from HTTP/1.0 initialization, not only from
a response Connection: close header, so it cannot replace the flag.
Add WebSocket protocol benchmarks for wsproto and websockets-sansio
Benchmark handshake and text frame sending using the same mock
transport approach as HTTP benchmarks. The legacy websockets
implementation is excluded as it manages its own internal tasks.