irmin: fix all actionable merlint issues (51 → 5)
- E005: extract resolve_and_commit helper in common.ml, shorten
cmd_pull and cmd_merge run functions
- E010: extract with_git_repo helper in schema tests, flatten nesting
- E105: catch-all `with _` → specific `with Eio.Io _` / `Failure _`
- E205: Printf → Fmt in bench.ml and heap.ml
- E330/E331: drop redundant test_/bench_/make_ prefixes in tests,
find_content → content in common.ml
- E405: add doc comments to all public values in backend .mli files
and functor arguments in irmin.mli
- E505: create .mli files for all 6 backends (git, json, cbor, tar,
atproto, oci)
- E605: create test stubs for hash, heap, schema, worktree
Remaining 5: find_ref can't be renamed (ref is a keyword), 3 empty
test suites (real tests are in schema/test.exe and tar/test.exe).