Stop using deprecated slice::raw::buf_as_slice()

- reply::as_bytes() now uses slice::from_raw_buf().
- channel::test::fuse_args() now uses CString for args.
Don't rely on &byte-array working like slice

These tests were failing equality checks, because the slice on the left is
not Sized while the byte array is.  Explicitly using as_slice() fixes the
test build, or using is_empty() for checking serialize_empty().
Make reply::test::Data a shared struct definition

All three tests using Data can use the same definition, and also mark this
#[allow(dead_code)] since the fields aren't directly used, only indirectly
from as_bytes() results.