While collecting the result, register worker only as free, if data was
received from the socket. Otherwise the worker has terminated abnormally
and will be handled by the reaper.
Throw exception only for forking mode "on-create".
WorkerPool::getBusyWorkers() and WorkerPool::getFreeWorkers() fails
for destroyed worker pools.
Add some more tests.