Turbopack: bincode: Add bincode encode/decode wrappers for `serde_json::Value` when stored in a cell (#86749)
This is used by https://github.com/vercel/next.js/pull/86338.
We store `serde_json::Value` directly in a cell. This worked because it was defined as a "primitive" (similar to how you can store a `Vc<bool>`). However, this doesn't implement `bincode::Encode`/`bincode::Decode`, so it causes problems when trying to store the cells using bincode.
This introduces a wrapper trait that we can implement for primitives to allow us to intercept their encoding/decoding. #86338 modifies `turbopack/crates/turbo-tasks-macros/src/primitive_macro.rs` to call this wrapper if it is provided.