opengl: refactor pl_opengl_wrap
This combines the function with the previously hidden pl_opengl_wrap_fb, allowing users to either provide their own framebuffers (in addition to the texture) or just wrap a plain framebuffer directly.
In addition to merging these two functions, we also significantly
overhaul the gl_fb_query
function for inferring pl_fmt
details from
an opaque framebuffer. In particular, our wrapped framebuffers can now
support PL_FMT_CAP_HOST_READABLE.