Refactor Pack to use bytesrw reader factories; add pread_reader
Pack files no longer require loading the entire file into a string.
Pack.t now stores a reader factory (int -> Reader.t) that creates
a bytesrw reader at any offset. of_string wraps strings for backward
compat; of_reader accepts any reader factory.
Added Bytesrw_eio.pread_reader: creates a bytesrw Reader from an
Eio file handle using pread for random-access reading. This is the
building block for file-backed pack reading (wiring pending — needs
switch lifetime design).
Pack.inflate replaced with Pack.inflate_reader that takes a Reader
directly instead of a string+offset.