SubProcess no longer an OutputModule

To facilitate the addition of the new thread safe module types, the SubProcess class no longer inherits from edm::OutputModule. It was never actually used as an OutputModule and only wanted to share some of its implementation. The common code was moved different source files to allow sharing.