ocaml-json: collapse stringy/primed API splits per spec
Spec migration step 2:
- Drop stringy-error variants (decode/encode/recode returning (_, string) result).
- Rename structured-error variants (decode'/encode'/recode') to the bare name.
- Add _exn variants for the raising form (decode_exn/encode_exn/recode_exn).
- In json.bytesrw: rename decode/decode_string -> of_reader/of_string,
encode/encode_string -> to_writer/to_string, add _exn variants.
- _exn variants are now the primitive; result-wrapping happens at the boundary.
- One canonical error type across the API: Json.Error.t = Loc.Error.t.