Workers without output

Provide support for registering workers that don't provide output or even use input. 

Refactor code so that as much as possible is shared between the different work implementations.