Rewrite code to copy images to PRODUCT_OUT

Move the logic to android_device. The reasons for this are:
 - As we start to check in android_device and filesystem modules,
   only one set should do the copying. It's easy enough to mark the
   android_device as the one, but harder for the filesystem modules
   given that they may be reused between different devices and now
   that top-down mutators are no longer supported.
 - It's easier to manage this code in one place, especially since it's
   temporary and should be removed eventually.

Having this higher confidence that there's only 1 copy rule set in
the build makes it less of a problem to use actual ninja rules for
the images.

Bug: 376727180
Test: m --soong-only && ls out/target/product/vsoc_x86_64/
Change-Id: If20ea2c55053cc962de9f9770db002edbc194835
diff --git a/fsgen/filesystem_creator.go b/fsgen/filesystem_creator.go
index 9aed460..fbe9078 100644
--- a/fsgen/filesystem_creator.go
+++ b/fsgen/filesystem_creator.go
@@ -263,7 +263,9 @@
 	}
 	partitionProps.Vbmeta_partitions = vbmetaPartitions
 
-	deviceProps := &filesystem.DeviceProperties{}
+	deviceProps := &filesystem.DeviceProperties{
+		Main_device: proptools.BoolPtr(true),
+	}
 	if bootloader, ok := f.createBootloaderFilegroup(ctx); ok {
 		deviceProps.Bootloader = proptools.StringPtr(":" + bootloader)
 	}