Wayland viewporter support
This implements the viewporter protocol which offers a cropping and scaling capabilities to wayland clients, see spec.
There are several use cases for this, for example video players and games (see the gstreamer gtk-wayland demo), both as a convenience function and as potential performance optimization when paired with hardware overlays or when used to scale up textures to save bandwidth etc.
As a by-product it also laid ground for buffer-transforms (!322 (merged)), because they both require disconnecting the direct relationship between the buffer and the surface size.
In can be tested with:
weston-simple-damage --use-viewporter --transform=[normal|90|180|270|flipped|flipped-90|...] [--use-damage-buffer] --scale=[1|2|3|...]
- the gstreamer gtk-wayland demo
Requires / based on: !322 (merged)
Implements: #132 (closed)
previously part of !121 (closed), based on old patches by Jasper St. Pierre and the weston implementation