Use a 1x1 buffer for setting solid-color backgrounds.
In the discussion here, it was suggested that the CRTC BACKGROUND COLOR property should be used internally by the compositor when the client sends a buffer of size 1x1. The following patches are part 1 of that series. They are independent so I decided to send them first.
The patches add support for setting a widget's destination viewport and this is later used to set the background color's viewport when a solid color needs to be set. Furthermore, the background surface is only allocated a 1x1 buffer to save memory.