We make use of this `exec` function for the new huppy bot. For that, I
needed to support a couple of extra use-cases: extending the `env` used
to evaluate a command, and prefixing the command output with a string.
In use, these look something like this:
```ts
await exec('my', ['command'], {
env: {HELLO: 'world'},
...prefixOutput('my prefix'),
})
```