this replaces the somewhat forced use of QHash with a QMap that we can simply iterate over.
there was potential for a race condition crash during screen disabling where the atoms were not updated with the new order indexes yet so [1,2,3] could end up being [2,3] because display1 was being disabled but the atoms hadn't been shuffled around yet. this would then crash on the assertion about having a complete order set -- an aspect we don't actually care about because we've earlier established that all connected screens have the atom (otherwise we'd be in fallback handling) meaning we can trust kscreen to actually manage them
this crash was 100% reproducible by switching my main screen's output signal from DP to USB-C
(cherry picked from commit aed07a5e)