feat(d3t): replace record codec APIs with GADT-based Codec module
Replace the 4 overlapping record codec APIs (slice-based, record-based,
decode_make, exception-based) with a single compositional Codec module
using Bunzli-style `record |+ field |> seal` combinators.
The Codec uses a GADT snoc-list to track field types through the |+
operator. At seal time, pattern-matching on the GADT applies all
constructor arguments at once (for up to 6 fields), achieving
zero-overhead decode (only the record itself is allocated) and
zero-allocation encode. For >6 fields, a chunked fallback applies
6 fields per step with ceil(n/6)-1 partial applications.
Also adds d3t codec wrappers for CLCW, Space Packet, and TM headers,
with benchmarks comparing against hand-written and original
implementations.