Update because wl_shm_buffer is no longer a wl_buffer

The Wayland server API has changed so that wl_shm_buffer is no longer
a type of wl_buffer and it instead must be retrieved directly from the
resource.

clutter_wayland_surface_attach_buffer now takes a resource pointer
instead of directly taking a wl_buffer and it will do different things
depending on whether it can get a wl_shm_buffer out of the resource
instead of trying to query the buffer type.

It has also been updated so that it tracks a resource for buffers of
surfaces instead of directly tracking a wl_buffer. This are pointed to
by a new ClaylandBuffer struct which can be referenced by a
ClaylandBufferReference. The WL_BUFFER_RELEASE event will be posted
when the last reference to the buffer is removed instead of directly
whenever a new buffer is attached. This is similar to how Weston
works.

This is based on similar changes in Cogland:
https://git.gnome.org/browse/cogl/commit/?id=9b35e1651ad0e46ed489
Prepare for wl_resource becoming an opaque type

wl_client_add_resource has now been deprecated in the Wayland server
API and instead of directly embedding the wl_resource in a larger
struct the compositor is expected to allocate it via
wl_client_new_object. The members are now accessed via accessors
instead of directly prodding into the struct.