gs-shell: Change mode in an idle callback after loading is complete

Otherwise the main context iteration where loading is marked as complete
has too much happening in it, and takes many cycles in GTK’s frame
clock. This makes the UI freeze for a noticeable fraction of a second.

Partially avoid that by splitting up some of the work here between two
main context iterations. The UI still freezes a bit; further work is
required.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
Status Job ID Name Coverage
  Build
passed #775010
debian-stable-x86_64

00:02:35

passed #775085
fedora-x86_64

00:03:45

failed #775003
debian-stable-x86_64

00:05:15

failed #775063
fedora-x86_64

00:04:28

failed #775046
fedora-x86_64

00:05:48

failed #775009
fedora-x86_64

00:06:40

failed #775002
fedora-x86_64

00:03:42