Refactoring
Use Composers autoloader. To dump the autoloader execute:

$ composer dumpautoload
Add vendor to Git ignore.
Add method to get overall processes in collection.
[!!!] Breaking change. See details below.

(1) Add status codes from abnormally terminated child processes to the
    results collection.

    This is a breaking change if you consider every
    result as a valid worker result.

(2) Also include NULL results from worker processes. That means the
    process has finished without errors or exceptions.

    This is a breaking change, if you don't expect NULL values in the
    results.

(3) Return the PID of the worker process instead of the WP instance.

    This is a breaking change, if you expect the result of
    WorkerPool::run() to be the WorkerPool instance.
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.
WorkerPool::getBusyWorkers() and WorkerPool::getFreeWorkers() fails
for destroyed worker pools.
Add autloader for tests and examples.
Do not store worker result NULL.