Add maximize, minimize, restore, hide and show for SDL2 Window

These features are often requested by kivy users, and they are a common part of other gui frameworks.
The methods are intended to be used on desktop platforms, they do nothing on ios and android.

This pr targets the SDL2 window provider, X11 will be implemented in the future.

I don't see a need to do any work around this for pygame, we would need to use platform specific apis because pygame lacks these controls, and the end result will be likely deprecated after the next release, when we switch to SDL2 by default.
Maybe is `desktop` from config to initialise this?