Simple serialization for simple values.
Using these traits, values can be serialized as bytes without any copying of data whatsoever.
AsBytes, WithBytes, and TryWithBytes are all implemented for types T and [T] where T: Copy.
try_with_bytes always returns Some(&[T]) when used on a dynamically sized slice, although the slice
referenced can be empty. The trait is only implemented there for genericity.
```rust let n: u32 = 0;
asserteq!(n.asbytes(), &[0, 0, 0, 0]); ```
```rust use core::ptr;
let arr = [10, -11];
// They reference the same memory address assert!(ptr::eq(unsafe { <[i32; 2]>::withbytes(arr.asbytes()) }, &arr)); ```