launch: Launcher: saturate max_concurrency whenever possible

Launcher (subprocess) was blocking (blocks of max_concurrency processes)
execution of processes, and only the next block could proceed if ALL of
the running processes in the current block completed.

This commit fixes this behaviour, so that Launcher now saturates the
available slots of max_concurrency whenever possible, given there are
still outstanding jobs to be run in the current group of processes.
Merge branch 'master' into python3