Simplify parts of the runner

Mostly breaks out some of the logic and introduces
Enumerab#each_with_object to avoid use of synthetic local variables.