Use of shallow copy / reflinks on BTRFS/XFS/ZFS

There is nothing you’d need to do for NAR serialization/deserialization. I’m not proposing Nix dedup anything on the fly. I’m merely asking that, if we’re copying something to the local store and it’s from a local file, then we try the various clone/reflink operations (via the system calls / ioctls), and fall back to regular behavior if they fail.

The source path abstraction stuff is interesting, but my use case here is for quick flake iteration, and the flake sources are copied to the nix store as far as I can tell. It’s a small pain (few hundred milliseconds).