irmin: enable MDX on lib/*.mli, fix broken doc examples
Run mdx on lib/{irmin,schema,worktree}.mli so the {[ ... ]} odoc blocks
now type-check, plus replace the broken examples that referenced a
fictional Sha1 module and `directory`/`entry` combinators that do not
exist in Schema (the API uses `node` and the prebuilt Irmin_json codec).
irmin.mli and schema.mli show the heap-load + cursor-navigate flow
against `Irmin.SHA256` + `Irmin_json.schema`, with `assert` on the
expected outcome (root child names, navigation success). Both use
`Irmin.Heap.of_list` to drop the `Heap.Mem` functor instantiation,
keeping the example small enough to read.
worktree.mli wraps the checkout/status/commit lifecycle in a `let run
() = ...` to defer the Eio_main + filesystem side effects, and the
example now consumes every return value (Fmt.pr on commit hash and
status length, Result handled on both branches) rather than `_changes`
or `ignore`.
The schema.mli `mime_rules` one-liner that needed 30+ lines of codec
setup to typecheck moved to inline-code prose; per the mdx skill,
that's the right call when an illustration's setup would balloon the
doc.