Refactor window geometry save/restore code to be less fragile
This commit refactors the code a bit to define the window geometry strings in one place and uses a common method to read and write them.
This makes future changes much less fragile and fixes a pre-existing bug that had gone un-noticed which caused window positions to not be saved on a per-resolution basis in addition to a per-display-arrangement basis. Old strings are used if available to that people don't lose their saved position data the first time they upgrade to KF 5.79.
Edited by Nate Graham