Shaped windows

There might be a couple of issues with shaped windows:

  1. SDL doesn’t check the function pointers before using ( https://hg.libsdl.org/SDL/file/9cec5fe32bca/src/video/SDL_shape.c#l38 )
  2. Cleanup: shouldn’t shaper and data be cleaned during window destruction? Perhaps SDL_DestroyWindow could check for shaper existance, and when found, call a shaper destructor function.