window: Simplify saving/loading window states
Follow https://wiki.gnome.org/HowDoI/SaveWindowState
- Use tuples in gsetting schema to save size and position
- Save changes to variable instead of saving to gsettings after every timemout
- Save the changes back to gsettings when the window is finalized.