backends/drm: make output state double buffered
When we queue output changes, the test afterwards needs to use the entire new state.
So far, it only actually tested changes in the DrmPipeline state, but a few properties
from the (Drm)Output that could make presentation fail were not actually tested.
This commit fixes that by making Output state double buffered; all getters query the
"next" state, but the old state is still stored, so that the new state can be reverted
easily.