support remote CopyIn/CopyOut + bind-mounts

This adds ServerRoot() to the CommandRunner interface, which is used to refer
to the root of the filesystem of the machine running the server. On a normal
CommandRunner it's just "/", but with a remote command runner it's whatever
mount point the VM has configured to point back to the host.

The Vagrantfile now mounts / on the host VM as /host, and the remote
command runner configures this (currently hardcoded in main.go).

[finishes #61261892]
RemoteCommandRunner: fix single quote escaping