wayland: free framebuffer's shell surface on destroy

This prevents leaking the Wayland shell surface associated with a Cogl
OnScreen when it is finalised.
wayland: implement foreign surfaces for CoglOnscreen

This adds support for optionally providing a foreign Wayland surface to
a CoglOnscreen before allocation. Setting a foreign surface prevents
Cogl from creating a toplevel Wayland shell surface for the OnScreen.

v2: Don't destroy foreign Wayland surfaces (review from Robert Bragg)