compartmentalize the different GUI components, splitting them out from gui.rs
change the bottom pane to be able to have tabbed views, allowing multiple simulations to be open at once, and support different types of tabs, such as simulator and editor tabs.
decouple main from loading models, allowing the program to be launched without a preset model. If parameters are presented, it instead creates one or more simulator tabs.
Could you try to make separate PRs for each change, main without model, bottom pane with tabs, and perhaps the GUI split (although I'm not sure we need to split it further).
The goal of this refactor is to
gui.rs