Preparation for render-scale: rework renderer init API, small fixes
This MR has a few commits from !394 which are working towards supporting render-scale, but can be cleanly separated.
Most of it is replacing the renderer display/surface creation function arguments with option structures, making it easier to extend in future and reducing confusion when we have lots of arguments.
The two more substantial drm-backend commits let us support getting differently-sized renderer buffers, without providing any facility to make the buffers actually be any smaller.
The other two commits are trivial and have no functional effect.