make execute spawn options configurable

i'm working on a workshopper where given `data-plumber verify foo.json` workshopper needs to run `gasket --config foo.json`

currently `workshopper-exercise/execute` is hardcoded to run `node [this.solution] [this.solutionArgs ...]` but this PR makes the command configurable via either a new `exec` option to change `node` to whatever you want:

```
execute(exercise, {exec: path.resolve(__dirname, '..', '..', 'node_modules', 'gasket', 'bin.js')})
```

or via overriding `exercise.setup` and having it return a custom `.solutionCommand` or `.submissionCommand`
This line seems to be supposed to prepare the solutionCommand in case it wasn't given. (legacy treatment) However, the `setup` of workshopper-exercise is always called before the setup of the workshopper (like learnyounode) and in  `setup` (on line 43) this code makes sure that `this.solutionCommand` will be defined so the code never enters the `if` in this line.