Commands can now be passed as argument vectors straight into execvp().
This removes all shell quoting headaches when going through this
interface.
File descriptors can be set up in a table-driven way as necessary.
A workdir for the child can be set. Environment variables can be
supplied now.
All callcmd friends are either removed or converted to this interface
with the exception of callcmd_pipe().