buildstep: create ShellBaseStep

refactor what is necesary to execute a shell command
in a slave, in a mother class.

existing unit test from shellstep cover that refactoring.

Signed-off-by: Ion Alberdi <ion.alberdi@intel.com>
listofshellcommands: implement step

this steps permits one to launch multiple shell
commands in a single step. Each shell command
has its own optional stdio log. They however, all share
the same workdir, use-pty, env parameters.

the scheduling of commands can be driven by overriding
some of the methods of that class (see comments in code).

Signed-off-by: Ion Alberdi <ion.alberdi@intel.com>