fix(odoc): correct OxCaml API field names and add cmti mode extraction
- Fix Jkind.Desc.t field access: use `layout` instead of `base` (the
type is `layout_and_axes`, not `base_and_axes`)
- Fix Jkind layout pattern matching: remove non-existent `Layout`,
`Univar`, and `Kconstr` constructors to match actual compiler API
- Fix Parsetree.jkind_annotation field: use `pjkind_desc` instead of
`pjka_desc`, and handle `Pjk_abbreviation of string` (not Longident)
- Extract arrow modes from cmti path by reading underlying Types.type_expr
- Expose Cmi.extract_arg_modes in .mli for use by cmti.ml
Verified end-to-end: modes render correctly for both .cmi and .cmti
inputs (e.g., `val f : string @ local unique -> int`), and jkind
annotations appear on type variables (e.g., `('a : float64)`).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>