`write_cvalue` didn't work for `Box<[u8]>`, because the inner fat ptr
was wrapped inside a newtype, which meant `Box<[u8]>` itself only had
one field.
This also simplifies `CValue::force_stack` by reusing `write_cvalue`
when it is not already on the stack.