gbm: new surface API for non-Mesa GL drivers
This API allows GL drivers, for which it is impractical to assume internals of GBM surface objects, actually use these objects. An example of such driver is ANGLE with its Vulkan backend. The relevant changes can be found at https://chromium-review.googlesource.com/c/angle/angle/+/3596045
ANGLE is the only user of this API as of now.