Replace HeaderBar visual state switching with a Gtk.Stack
Currently HeaderBar is a single Gtk.HeaderBar and state changes involve setting CSS styles and showing/hiding elements. This works, but the transitions are lacking (some are hard) and the code becomes needlessly complicated.
Instead use 2 or 3 Gtk.HeaderBars for the main states and use stack transitions between them.
- No more turning specific widgets on/off.
- Transitions make more sense (slide in/out on secondary views, see https://source.puri.sm/Librem5/libhandy)
- Cleaner codebase.