ocaml-yaml: extract Value to value.ml / value.mli
Moves the YAML AST out of yaml.ml into its own file. yaml.ml re-exports via [module Value = Value] and [type t = Value.t = | Null ... | Bool ... | ...] so pattern matching at the Yaml.t level still works verbatim. Sort moves with it, now under Value.Sort; yaml.ml aliases it as [module Sort = Value.Sort].
This unblocks decode.ml / encode.ml (Value-walk interpreters for Codec.t) which couldn't compile before — they now have a standalone Value module to depend on, independently of yaml.ml's orchestration layer.
All 44 tests pass unchanged.