perf: slim Cid struct for smaller Value union and zero-cost CID decode
Cid now stores only raw bytes (16B) instead of parsed fields (56B).
Value union shrinks from 64B to 24B, MapEntry from 80B to 40B.
CID decode is zero-cost (byte slice reference), map keys are read
inline without full decodeAt dispatch.
Breaking: Cid field access is now via methods — cid.version().?
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>