Based on discussion with alexpott and heyrocker in IRC, to manage config import issues in #1808248: Add a separate module install/uninstall step to the config import process we need to have ability for other modules to affect the priority / order of what is getting imported in a config import.
Basic idea is to abstract out the array list of changes being imported in the ConfigImporter class to a separate object (a ConfigList). This object can then be passed to other modules by firing a 'prioritise' event via the event dispatcher, just before we do the actual config import.
Subsequently we would implement a PrioritisableArray object utility (similar to NestedArray / MapArray) in Drupal\Component\Utility, that we can use to affect the priority of the items being imported.