Fix Deadlock in WorkerPool::runSingle()
The merge request fixes a deadlock in concurrent execution of WorkerPool::runSingle().
The deadlock occurred because there was no mechanism to distinguish between a free and waiting co be collected state.
A new state FREE
has been introduced.