Define our own container_of as well

Don't rely on libwayland-client/server to define this for us.
diff --git a/src/compositor.h b/src/compositor.h
index 19ab11e..3176bfd 100644
--- a/src/compositor.h
+++ b/src/compositor.h
@@ -39,6 +39,10 @@
 
 #define ARRAY_LENGTH(a) (sizeof (a) / sizeof (a)[0])
 
+#define container_of(ptr, type, member) ({				\
+	const __typeof__( ((type *)0)->member ) *__mptr = (ptr);	\
+	(type *)( (char *)__mptr - offsetof(type,member) );})
+
 struct weston_transform {
 	struct weston_matrix matrix;
 	struct wl_list link;