The extension handling is currently intertwined with the UI. Splitting it out provides a clearer separation, and will allow us to switch to a model-based UI later. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3067>
Using a single source file is getting unwieldy, so start splitting it up. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3067>
Follow the pattern used by most GNOME applications and add a profile build option that allows building a Devel app instead of the regular release. https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3612 Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1661>