Give access to ModuleHolder's via a functor

Since the ModuleHolders now create the OutputModuleCommunicators
the system needed access to the holders. Using a functor avoids exposing
the fact that right now we are using a map to told the items.
Have ModuleHolder create the OutputModuleCommunicator rather than Worker

Given that we expect a one to one correlation between OutputModule module
and OutputModuleCommunicator, it makes more sense for the ModuleHolders to
create the OutputModuleCommunicator rather than the Workers. This also means
we no longer have a need for the OutputWorker specialized class.