fix: HTTP/2 large body handling and flow control
- Fix H2 server read buffer tracking for bodies >16KB
- Track buf_off/buf_len for partial consumption
- Handle Yield state in read loop
- Compress buffer after partial reads
- Fix H2 client body flushing before close
- Use Body.Writer.flush with callback before closing
- Ensures all data is sent before marking stream done
- Add comprehensive large body test suite
- HTTP/1.1: 1KB-5MB POST, integrity, max_body_size
- HTTP/2 h2c: 1KB-5MB POST, integrity
- WebSocket: 1KB-64KB messages, integrity
- Add benchmark comparison tools
- bench_compare.ml: Compare results across runs
- bench_parser.ml: Parse benchmark output
All tests pass with default H2 window size (65535 bytes),
confirming proper WINDOW_UPDATE flow control.