wayland: implement foreign surfaces for CoglOnscreen

This adds support for allocating a foreign Wayland surface to an
unallocated CoglOnscreen. If a foreign surface is set, Cogl does not
create a toplevel Wayland shell surface.