There were a couple of problems which were fixed within the ticket:
1. `CustomImlData` was not saved for modules stored at external system folder
2. `DummyParentEntitySource` was applied not only for module entity but for an other e.g `ModuleGroupPathEntity`,
`ModuleCustomImlDataEntity`... This entities without PersistentId which leads to incorrect behaviour at
replaceBySource and leaking DummyParentEntitySource` to the main store
3. There was a problem that the system don't load `ExternalSystemOptions` if customRootsSerializer is exist
4. For Clion we should created `ExternalSystemModuleOptionsEntity` if we know the externalSystemId but project import
not started yet(for some reasons it may not start e.g due to the problems at Makefile) and we should properly handle
serialization of such cases
GitOrigin-RevId: f045ceda298d61cf779091e2350827c7e0fb1ab2
If a module configuration isn't stored in iml and its ModuleEntity uses custom entitySource, and a facet configuration is stored in iml and its FacetEntity uses the standard JpsFileEntitySource, we need to collect all relevant entities with different sources during save, otherwise FacetEntity may be missed and its configuration won't be saved.
GitOrigin-RevId: 44de0eaafb2ab87d9e10fc11e7174d8261529d32