Runners find programs in the supplemental path

Even though you can supply an environment to `Process.spawn` and
`Posix.spawn`, that doesn't mean they'll use that environment while
looking for executables. A modified PATH environment is passed correctly
on to the spawned process, but an executable is not searched for in the
modified PATH. Given that, we need to modify the environment when
`spawn` is called. As `BackticksRunner` and `POpenRunner` both modified
the environment already, they worked fine.