Implement remote framebuffer for GBM backend
This commit introduces a way to pass drawn buffers to remote side for
GBM backend. The buffers are not released till the notification comes
from the remote side they are no longer needed. It is possible to
achieve since the default Mesa GBM implementation gives 4 surfaces to
any created gbm_surface.
This feature is turned off by default, the environment variable
KWIN_REMOTE=1 enables this behaviour. The fds of GBM buffers are
passed by the means of wayland server and custom protocol.