Use the technique described in #206, and maybe build on it if we add those methods.
One thing worth considering is whether it's acceptable to introduce the cost of copying 2 * size_of::<T>() bytes to trait impls that, for wrapper types, are supposed to just be passthroughs. Alternatively, we could just emit a simpler Debug impl that just prints the type's name but not its contents when T: !Unaligned.