Add progress callbacks and FRP async bridge
- Zarr_v3.Store.read: optional ~on_shard:(int -> int -> unit) callback
- Tessera_zarr.fetch_region: optional ~progress:(string -> unit) callback
threads shard progress messages from the reader
- Tessera_zarr_jsoo.Frp_async: bridge Note signals to Lwt async ops
with Loading/Ready/Error states and stale request cancellation
- Expose async fetch, sync fetch, and Frp_async from tessera-zarr-jsoo
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>