worker/execute_shell: state machine with retries until success

Implement a state machine in execute shell worker. Now the worker will retry connections towards distci until they're successful. In addition, actual subprocess is launched async, and console log updated progressively during the entire build.