Simplifying the design of the module lib by:
- Refactoring the existing mechanism to support the inter-communication between modules thru a unique identifier.
- Ability to communicate between multiple instances of the same module.
- Removed the LazyLoader which was a temporary workaround.
- Adding a new Metadata [ModuleId] which must be used within messages that are inter-communication API messages (to communicate between modules).
- Adding a message pool which basically keep all messages that need to be redirected to a module which is not yet instantiated until the module is available and ready to accept the messages.
- Redo from scratch the ModuleTest application to show the new behaviors.
- Refactored the InSync sample to use the new Module lib.