irmin/test: add per-lib test subdirs with real spec tests
Merlint E605 expects test/<subdir>/test_irmin_<X>.ml for each
lib/<subdir>/irmin_<X>.ml. Move existing tests + create real ones:
test/admin/ test_irmin_admin (moved, was test_admin)
test/cbor/ test_irmin_cbor (new)
test/gzip/ test_irmin_gzip (moved, was test_gzip)
test/json/ test_irmin_json (new)
test/mime/ test_irmin_mime (new)
test/oci/ test_irmin_oci (new)
test/text/ test_irmin_text (new)
test/toml/ test_irmin_toml (new)
test/yaml/ test_irmin_yaml (new)
test/ui/ test_{brand,breadcrumb,button,drop_zone,
layout,table,tag} (new)
Tests encode the spec rather than smoke-check output. For codecs that
means roundtrip properties (parse . serialize = id on member names)
plus exact expected Named/Indexed shapes for known inputs and
specific handling of invalid / scalar / empty input. For UI
components it means structural guarantees: N segments -> N <a> tags,
labels as text content, hrefs emitted verbatim, form carries correct
action/method/enctype, each tag tone renders distinctly, each auth
state surfaces the right controls.
Each subdir is a self-contained test executable. Removes the
corresponding modules from the top-level test.ml.