introduce RealWorkerFactory
the previous naming was a bit unfortunate because it created slaves using a function called worker, so now we have a factory that creates "realworker".
this also requires some additional refactoring in the workerthread, where we now prefer realworkerfactory if it is implemented. the unique_ptr is held in a variant now.
to get the slavebase (i.e. the dispatcher) of a workerbase we now further need to go through the dptr of workerbase and excavate the bridge (i.e. the actual slavebase behind the workerbase)