Matrix protocol in OCaml, Eio specialised

Add HTTP/2 support and use external uri library

HTTP/2 Implementation:
- Add h2_frame module for RFC 7540 frame parsing/serialization
- Add h2_hpack module for RFC 7541 header compression (HPACK)
- Add h2_stream for HTTP/2 stream state machine
- Add h2_connection for multiplexed connection management
- Add h2_client high-level API matching HTTP/1.1 interface
- Add h2_adapter for protocol version abstraction

URI Library Migration:
- Replace custom Huri.t with Uri.t from uri opam package
- Keep Huri.write for efficient Buf_write serialization
- Remove Uri module shadowing from requests and apubt libraries
- Use Uri.* functions directly throughout codebase

Requests Library Reorganization:
- core/: fundamental types (body, headers, status, method, error)
- features/: optional functionality (auth, cache, retry, signature)
- h1/: HTTP/1.1 client implementation
- h2/: HTTP/2 client implementation
- parsing/: header and structured field parsers

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

+1 -3
-1
lib/matrix_client/dune
··· 9 tomlt 10 tomlt.eio 11 xdge 12 - uri 13 eio 14 ptime 15 base64
··· 9 tomlt 10 tomlt.eio 11 xdge 12 eio 13 ptime 14 base64
+1 -2
lib/matrix_eio/dune
··· 4 (libraries 5 matrix.client 6 matrix.proto 7 - eio 8 - uri))
··· 4 (libraries 5 matrix.client 6 matrix.proto 7 + eio))