launch-multi2: split up logs from nodes into prefixed lines

Currently it's impossible to tell apart logs from each node.

In general, we should move this over the the debug logging API instead
of relying on qemu stdout, but this will do for now.

Test Plan: Shouldn't affect any tests, as we don't actually test multi-node setups. Truth be told, we should.

X-Origin-Diff: phab/D670
GitOrigin-RevId: 7b4e170e634096bc40432fbef0844d9924957182
diff --git a/metropolis/test/launch/launch.go b/metropolis/test/launch/launch.go
index 2d495e0..af0b808 100644
--- a/metropolis/test/launch/launch.go
+++ b/metropolis/test/launch/launch.go
@@ -126,10 +126,9 @@
 	// Intended for networking this instance together with others for running  more complex network configurations.
 	ConnectToSocket *os.File
 
-	// SerialPort is a File(descriptor) over which you can communicate with the serial port of the machine
-	// It can be set to an existing file descriptor (like os.Stdout/os.Stderr) or you can use NewSocketPair() to get one
-	// end to talk to from Go.
-	SerialPort *os.File
+	// SerialPort is a io.ReadWriter over which you can communicate with the serial port of the machine
+	// It can be set to an existing file descriptor (like os.Stdout/os.Stderr) or any Go structure implementing this interface.
+	SerialPort io.ReadWriter
 
 	// EnrolmentConfig is passed into the VM and subsequently used for bootstrapping if no enrolment config is built-in
 	EnrolmentConfig *apb.EnrolmentConfig