backends/drm: refactor buffer management
Instead of buffers being both drm framebuffers and gbm / dumb buffers, these responsibilities are now split, which makes it possible to do zero copy screen casting in the future.
Both framebuffers and gbm / dumb buffers also now always hold a valid underlying resource, which simplifies code a bit.
Edited by Xaver Hugl