v4.0.1 -- post-v4.0.0 fixes

- install.bat: skip install loop when every broker already has its
  base/terminal64.exe. Without this guard, v4.0.0's loop set
  NEEDS_REBOOT=1 once per boot (root cause unclear -- install_one's
  skip path logs "already installed" but :wait_done still fires),
  triggering an infinite reboot loop. Genuine first-installs still
  enter the loop because any missing terminal64.exe forces
  ALL_INSTALLED=0.
- start.bat: switched API_TOKEN load from `for /f` over the helper
  to a tempfile read. The for/f form was occasionally returning
  empty (python crash / pyyaml fallback install / stdout buffering
  through the cmd subshell). Tempfile path is robust.
- run.sh: added SKIP_KVM_CHECK env escape hatch for hosts that
  proxy KVM differently (CI, nested virt setups).
- config_helper.py + run.sh: new `port_list` subcommand that prints
  individual ports space-separated. The existing `ports` subcommand
  collapses to a min-max range for the docker-compose port mapping;
  run.sh's per-port iteration needs the explicit list.