v3: Zero BITMAPINFO structs, fix a typo in the offscreen surface biSizeImage, simplify XSHM extension usage using a dummy struct and dummy helpers when it isn't available.
Simplify the winex11 memory management by always allocating XImage data when not using XSHM, and then wrapping the XImage data in a D3DDDI bitmap in both cases.
The D3DDDI bitmap should support all the common formats for which we can write directly to the surface pixels. Other case involves a bitmap allocated on the win32u side and copies in winex11 surface flush.