* Support Vetu virtualization on Linux in addition to Tart on macOS
* api(portForward): ensure that rendezvousConn is closed
* Re-try SSH connections in integration tests
Because a VM might be still booting.
* controller(api): new "GET /vms/{name}/exec" WebSocket-based endpoint
* Split SSH connection and execution to avoid standard input handoff
* execstream: make Exit field a pointer again
To support serializing exit codes equal to 0.