backend/drm: implement KMS state snapshot/restore
Following ideas from 1, snapshot the entire KMS state when the VT is switched away, and restore it when the VT is switched back.
Well the neat trick is that userspace doesn’t need to be able to understand properties to save and restore them - the actual property value transport between kernel and userspace is fully generic.
That way, even if another DRM master changes a property we don't understand like CTM or HDR_OUTPUT_METADATA, we can switch it back and avoid getting garbage on screen.