Creates a plain-string sender whose lines are mapped through f and
forwarded to log. This lets run_cargo_build (which only knows about
strings) feed into the structured LogSender without depending on
LogEvent directly.
Copy each artifact from its path inside tmp_root to the corresponding
path under target/, creating parent directories as needed, and return
updated ArtifactPaths pointing at the new stable locations.
Spawn cargo build --release --message-format=json [--target <triple>] [--manifest-path <path>] and collect every artifact path from the
compiler-artifact messages.