Introduce RenderOutput
RenderOutput replaces Output for rendering matters, to support tiled displays and cloning better.
Split out of !1174 to make rebasing and reviewing less cumbersome
also related: #78. With this merged + a few additional bits, the drm backend could create a single RenderOutput
for multiple real outputs, increasing efficiency