desktop-shell: Handle all other shell surfaces in case of an output resize
These two desktop-shell patches are extracted from !480 and rebased on latest main.
While the background and the panel surface are handled in the output resize handler, no other shell_surface is handled/configured at that moment. This sends configure events for maximized and fullscreen type of surfaces, while for other types it would reposition them to avoid having surfaces/views outside of the output's viewing area.
Latest version introduces a couple of helpers/common function to handle shsurf transition from one state to another and handle the width/height dimensions.