Update due to changes in the wayland-cursor API

With the new wayland-cursor API there's no longer a 1:1 connection
between surfaces and windows. Before creating WaylandSurfaceItems from
surfaces we need to make sure that the surface is a window surface (by
checking for a wl_surface_shell).

This is the same change made by nezticle for the desktop compositor, see
6dae218a0fd02643dff8f612809d7800dce9043d.
Don't need display manager socket anymore

Passing the display manager socket is not needed anymore, we just listen
to protocol events.
Log banner and OS information with our custom message handler

Move logs after the application is created so that it uses our custom
message handler and improve log formatting.
Wrap extensions list when exceeding 78 characters

This improves log output readability a lot.