Fix external runner respawning

Prior to this commit, the ExternalRunner kept a reference to all subprocs it had ever spawned.  When re-spawning to continue a duration-based test, it would spawn a new proc for every item in this list, leading to an exponential increase in the number of active processes.

With this commit, it now keeps references to only those subprocs that are currently active, and only re-spawns processes that have terminated since the previous check.  This should make it much better behaved for long-running duration-based tests.

Depends on https://github.com/mozilla-services/loads/pull/138