Make compilation_step and evaluation_step accept multiple commands

This allows to perform multiple-command compilations and evaluations
without having to bundle commands together with /bin/sh, which seems to
call fork() and therefore fail as soon as we effectively limit the
number of processes to one.

Some other API has been changed accordingly. Yet, please note that
evaluation_step_before_run and _after_run are kept unchanged (i.e. they
still accept only one command).