Standardize on having window::win->signals always be an array, to allow sane subclassing and multiple dosignals() calls
Convert all dosignals() to the new best current practice
Stipulate that makewindow() should call the inherited function after creating a window
Break persist out into its own file to allow globals to use COMPAT options
Create a movablewindow class that's like a window but persists its position
Optionally persist the window size as well as position, in movablewindow