Currently, stores rely on our custom Event class, which is very unreliable when new subscribers try to observe old data. Instead of creating events, this PR makes use of Room's Flow observables to provide the latest data. Alongside that, stores now sort the data before they're emitted to viewmodel, which decreases the UI overhead since compose now doesn't need to sort channels and guilds manually.
Currently, stores rely on our custom Event class, which is very unreliable when new subscribers try to observe old data. Instead of creating events, this PR makes use of Room's Flow observables to provide the latest data. Alongside that, stores now sort the data before they're emitted to viewmodel, which decreases the UI overhead since compose now doesn't need to sort channels and guilds manually.