Test state changes result in correct size and positions
This adds a bunch of tests that tests things like
- Unmaximizing should restore the previous size position
- Untiling should restore the previous size and position
- Cycling between being maximized, tiled and floating should result in the correct sizes and positions
What is currently not tested is when the client has some size constraints, e.g. a terminal emulator only resizing according to the character grid.
There are one test that I didn't add on X11 because it just didn't work, and I couldn't be bothered to fix. This was unmaximizing to a different size from what was before being maximized.
The pipeline will fail initially, as this relies on gtk having some fixes: gtk!1606 (merged)