Track worker speed and pick workers by speed

We don't want to always be giving jobs to the slowest worker so this
accumulates the reported worker speed and picks the fastest available
worker.
Always cleanup on test script exit, and make supress terminated messages

We want the test output to be as clear as possible, so we can catch true
errors, hence getting rid of the terminate messages.  We also don't want a
random test dying to leave background processes around, so now run
clean_up every time we exit.