Add support for running jobs locally

Add a quick workaround allowing to run jobs locally making use of
multiple cores. One sub-process is spawned for each core to be used
stearing the running of the jobs.

The behaviour can be configured by two options "shell" and "cores".
"shell" defines the shell that is used to process the job commands.
"cores" defines the number of cores that should be occupied in parallel,
if "cores" is 0, all cores available on the system are used.

The following restrictions apply:
* it is not possible to delete running jobs, only those still waiting
  for execution can be removed
* cancelling (e.g. CTRL+C) the main program/script will also cancel the
  sub-processes
* no job tracking across program restarts, non-finished jobs are lost
* in case the program/script finishes normally, the sub-processes are
  not properly terminated