It is not necessary for an object to implement AsRef<[u8]> + Deref<Target = [u8]> for fixed-length storage.
We should add an intermediate trait between Span and Array (like FixedSpan) that can be used for fixed storage.
We should retain Array for things we require to be very efficiently encoded as bytes (for things like keys in maps).