Runners

Two changes:

 * Reorganized runners
 * Made `ShellRunner` more flexible 

As always, I strongly recommend you to review the commits one at a time.