Clean up MasterCommand a bit.
Make the runner try another port if its taken.
Handle sending shutdown to runners already dead.
Remove debugging from MessageStream.
Handle worker startup issues by timing out.
More timeouts so we're not hanging on startup failures.
Fix TestResult failure handling.
Log runner output into its own log file per runner for easier debugging.
This makes testing a bit easier.
Don't rsync for a local connection.
Don't include pipe as it's not used anymore.