platforms/drm: introduce virtual outputs
When the last output gets disconnected, create a virtual output as a placeholder until we have access to a physical output again. While this placecholder never gets rendered to, with virtual outputs in general that is possible (with gbm and qpainter atm) and can be done for future use cases like wireless displays.
This fixes some issues when the last output gets removed, like windows being resized badly and layouts in apps changing. Plasmashell still crashes though.
CCBUG: 420160 CCBUG: 438839 cc #42