Worker error reporting

When a worker's initialisation fails, it does so silently, and the master just hangs around.

This PR introduces messages indicating the worker failed to startup, and returns that to the master.

Todo:
- [x] Error messages for runner failures.
- [x] Ensure master removes the worker from the pool.
- [x] Ensure the worker fails if all runners fail to startup.