1) Refactored single CommunicationHandlerFactory into CommunicationModules
2) Added an ICommunicationModuleRegistry and Default implementation to allow defining a custom set of communication modules to use