xml,s3: migrate consumers to new Loc API
Pattern matches on Loc.Error use the record shape; Path.index becomes
Path.step (exhaustiveness: unknown steps pretty-print via Path.pp_step
rather than raising). Top-level Xml combinators moved into Xml.Codec;
consumers switch [open Xml] to [open Xml.Codec].
Context accessors: Context.frames (root-to-leaf pairs) /
Context.rev_frames (raw leaf-to-root). Path accessors: Path.steps /
Path.rev_steps, matching the same naming convention.
Cursor.to_context/of_context bridge to Loc.Context via
Path.steps + Context.push; the cursor frame list and the error
context spine remain the same spine.
Loc test renames rev_indices -> rev_steps; XML test 334/334 green.