protobuf: split Sort into sort.ml and expose at Protobuf.Sort
Move Sort out of codec.ml into its own sort.ml at the top level. Sort
was previously private to the codec interpreter, even though it labels
error contexts exposed to users. Surface it at Protobuf.Sort so the
module structure matches the other encoding libraries (Json.Sort,
Xml.Sort, Toml.Sort, Cbor.Sort, Csv.Sort).