Remove usage of command string-based exec interfaces.
In particular we are looking at `doCmd()` family of functions in `nimble`. The use of command strings (strings that are passed verbatim to the shell) is prone to injection bugs (nimble already got hit: https://consensys.net/diligence/vulnerabilities/nim-insecure-ssl-tls-defaults-remote-code-execution/, temporary fix available in #894).

The alternative API can be something like `runCmd(args: varargs[string])` (change the name so that we can audit all current usage of `doCmd()`/`doCmdEx()`).