json: split Sort into sort.ml
Move Sort out of Core (where it was private) into its own sort.ml at
the top level. Sort is a public type referenced from Error.Sort
signatures, Value.sort, and Loc.Path frames; hiding it in a private
module was inconsistent with its public role.
json.mli previously re-declared Sort.t via a [type t = Core.Sort.t = ...]
pin to expose the constructors through the public module. Replace with
a direct [module Sort = Sort] re-export, which is simpler and matches
the pattern the skill now recommends across all encoding libraries.