fix(ocaml-git): bridge gap commits in subtree split and self-heal cache
Subtree split produced orphaned commits (no parents) when the monorepo
history contained "gap" commits — commits with empty trees or only a
single subtree's content. These break the parent chain for all other
prefixes, causing non-fast-forward push failures for every package.
- Add find_ancestor_split to walk backward through ancestors and find
the nearest cached non-null split, bridging over gap commits
- Add parent-consistency check to verify_cache: detect orphaned splits
where the split has no parents but the original has reachable ancestors
- Move verify_cache before split and call it on every split, so the
cache self-heals without requiring external callers to verify first
- Remove duplicate verify+clear from monopam push (now handled by split)
- Add opam-repo cleaning to monopam clean