[WIP] compositor-drm: Implement multi-gpu pixman support

This is a WIP patch implementing support for multiple drm devices
when using the pixman renderer. A new config option "multi-drm" is
introduced in the drm backend. When specified, the backend will try
to use all available drm devices found in the requested seat.

Tested with:
weston --multi-drm --use-pixman --backend=drm-backend.so
on a dual-GPU desktop, each GPU connected to a single display.

- A new struct drm_dev stores the drm-device specific fields. The
  drm_backend keeps a wl_list of these devices.

- structs drm_head, drm_output have a pointer to the appropriate drm_device.

- capabilities (atomic modesetting, clock setting, cursor width and height,
  universal planes, aspect ratio) are backend-global and have to be set
  after checking the respective cap on all drm devices.

- Should cursor width and height be drm-specific? What other drm_backend
  struct fields should be drm-device specific?

- There is code in the patch concerning gl-renderer/egl/gbm but of course
  it does not work yet with the multi-drm option. The question is whether
  the approach this patch takes will be suitable for supporting gl
  or other renderers in the future.

Again this is RFC/WIP, to see if this approach is sane to continue developing.
Comments welcome. Formatting and style are not thoroughly checked, and comments
are still sparse, apologies.

v2: updated to master 61eb170b

1 job for multi-gpu-pixman-wip in 4 minutes and 47 seconds (queued for 2 seconds)
Status Job ID Name Coverage
passed #41587