Account command stacks
This branch has two main goals:
- Move GActions and related MainWindow-specific code from Application.Controller to MainWindow
- Implement per-account undo for as many MainWindow actions as feasible without Engine changes
These aren't really related, but doing work on the first gave a good reason to implement the second. This work and the resulting fallout saw nearly all main-window-specific code being moved out of the controller, main window actions being re-implemented as commands, and fixes for a few other issues along the way.
Fixes #107 (closed), #488 (closed), #534 (closed), #578 (closed)
Goes a long way towards supporting multiple main windows (e.g. #139 (closed))