wayland-surface: Allow setting a NULL buffer to effectively unmap
wayland-surface: Only spew about set_buffer_scale if it's not 1

... to stop the GTK+ spam on my system.
stack: Don't take a weak pointer

Since this is stored in an array full of data that will be copied
around, we can't rely on pointer addresses for every item in a stack
not changing.

I don't see any reason that we even have a weak pointer, either.
This code looks safe to me without it.