backends/drm: simplify how atomic commits are done
Instead of having every DrmProperty store pending values, store the data for the next commit in a separate and temporary type. This simplifies the code and makes it possible to do commits in a separate thread