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:
- [ ] Error messages for runner failures.
- [ ] Ensure master removes the worker from the pool.
- [ ] Ensure the worker fails if all runners fail to startup.