Start working on a kvm builder
Use QEMU control channel to control VM

Once the VM has started, then we can use the control channel (JSON over a unix
socket) to control the VM.  In particular, we can use this to stop the VM.
Enable sharing of VNC connection

So that we can monitor the progress of the VM, enable sharing of the VNC
connection.
Copy the message from the new headless mode.

Since we are running KVM headless, it seems to make sense.
Copy the new <waitN> commands
Type the boot command slower

The boot command was being typed too quickly and not all of the typed
characters were being recognised by the VM.
Use a single control connection to the VM

Start the VM in paused mode, then connect to the control socket and
start the VM using that.  Then keep that control connection open for
the duration of the build.
Don't give up after 10 failed SSH attempts

Just rely on the timeout to stop the SSH attemps.  The port forwarding
seems to mean that we can connect to the port - but not establish an
SSH connection.  Which means that we will quickly try more than 10
times.
Add support for keyboard-interactive SSH login
Try to trigger a notRunning error on receiver fail

If the receiver loop fails (most likely because qemu has exited), then
we want to try and have Execute return a notRunning error - we
certainly don't want to wait forever to receive a value from a channel
that will no longer be written to ...