function runCommands (commands) {
  const runner = new CommandRunner(commands)
  return [runner, runner.run()]
}
Runs an array of commands. If the user cancels it will consume this entire
array. Thus you should only call this for ShotSetup + DialogNode 1 or for a
single dialogNode.

Returns the running commandRunner to handle cancellation.

@param {AbstractCommand[]} commands
@returns {CommandRunner} the running commandRunner.