A ModuleInfo stores general information about a module, including:
ModuleId: a unique identifier for the kind of module
Module type: whether it's a source or manipulator
Display name: for showing to a user
Description: so a user might quickly understand what the module does
Capabilities: a list of Strings that document some of the capabilities of
the module being configured.