libGLX: Rework the ABI for object-to-vendor mappings.
Created by: kbrenneman
The current interface between libGLX and libGLX_vendor maps from objects (drawables, contexts, FBconfigs) to screens, and then from screens to vendors. As a result, the interface requires that every screen have exactly one vendor, which all objects on that screen have to use.
We could instead change the interface so that it maps from objects to (screen, vendor) pairs. When you create a context or drawable from a GLXFBConfig, it would inherit the config's vendor.
How each config maps to a vendor would be an implementation detail within libGLX. While it might use an (object -> screen -> vendor) mapping now, future versions of libglvnd could allow for other options without having to change any vendor libraries.