backends/drm: handle multiple OpenGl contexts more correctly

Xaver Hugl requested to merge work/zamundaaa/orphaned-context into master

In order to destroy resources from a context on the secondary GPU, that context needs to be current. We also want to destroy the context once it's no longer used, if the GPU is unplugged etc, so this commit uses shared and weak pointers to manage the lifetime of the contexts

Merge request reports