SDL: Send EVENT_SCREEN_CHANGED after receiving SDL_VIDEORESIZE when necessary.

This fixes some ugly crashes when resizing the window in OpenGL mode.
OPENGL: Fix rollback.

Formerly it was doing an endless loop in case of a rollback. Oops.
OPENGL: Limit maximum Surface size to maximum texture size.

This is mostly aimed at old graphics chips. For example, wjp's old laptop
only supports 1024x1024 textures but has a 1280x800 screen. Switching to
fullscreen would create a bigger overlay than supported. Now it will get
limited to an smaller resolution and then scaled too.

Alternatively we could think of tiling surfaces into textures. But then
handling scaling would be more complicated since it might result in
artifacts on texture tile borders.
OPENGL: Use linear filtering with overlay and OSD.

This assures their readability in the rare case they are scaled.
GUI: Check for screen change whenever an event is polled.

This should *hopefully* really fix all GUI crashes when resizing with OpenGL.