printing: Don't wake up Avahi printers unnecessarily

Use info available in Avahi TXT records for creation of gtk printer
and request details when needed (through gtk_printer_request_details()).
If there is a printer advertised on Avahi by a remote CUPS server
try to get its PPD file at first or get its capabilities through an IPP
request if it fails.

https://bugzilla.gnome.org/show_bug.cgi?id=712751
Update xdg-shell.xml
wayland: Allow set_title after initial showing

and fix the ordering of title / app_id
wayland: Sync transient-for on xdg-surface show as well...
build: bump requirement on gobject-introspection to 1.39.0

https://bugzilla.gnome.org/show_bug.cgi?id=713044
x11: Unset GdkX11DeviceXI2 scroll valuators on device change

Scroll valuators were being just appended again and again, leading
to 1) a growing memory issue anytime a device changed 2) the first
scroll valuators to stay permanent on the application lifetime, as
the first stored valuators would always match.

https://bugzilla.gnome.org/show_bug.cgi?id=705203
Themes with specified gap images but no actual file crash.

https://bugzilla.gnome.org/show_bug.cgi?id=712536
pixbuf-engine: Improve ThemePixbuf clean up functions

Make theme_pixbuf_destroy() NULL-safe like g_free(), and add a clear
function in the spirit of the g_clear_* family of functions.

https://bugzilla.gnome.org/show_bug.cgi?id=712536
pixbuf-engine: Clean up error conditions and destructors

Simplify the error checks and move all common behaviour into a utility
function.

https://bugzilla.gnome.org/show_bug.cgi?id=712536
gdkwindow: Fix potential uses of uninitialised variables

Found with scan-build.

https://bugzilla.gnome.org/show_bug.cgi?id=712760
gtktreeviewaccessible: Fix a potential division by zero

Found with scan-build.

https://bugzilla.gnome.org/show_bug.cgi?id=712760
testsuite: Fix potential strcmp() against NULL

Use g_strcmp0() instead.

Found by scan-build.

https://bugzilla.gnome.org/show_bug.cgi?id=712760
treemenu: Implement height-for-width properly
stack: Fix crash on g_object_get("visible-child")

priv->visible_child is not a GtkWidget but a custom struct holding the
widget. So use the getter instead.
window: Don't assume 640x480 max default size

Instead, use the monitor's work area.

This might have unforseen side effects that warrant a later revert, such
as:
- Apparently some WMs assume maximizing when a window is maximum screen
  size.
- WMs might not shrink the window by the decorations' size when it tries
  to be fullscreen.
- Applications might have buggy size request code that causes weirdly
  sized windows.
menu: Do a proper min height request

The minimum height is the size of one menu item plus the arrows, not the
minimum size of all menu items.

https://bugzilla.gnome.org/show_bug.cgi?id=691974
https://bugzilla.gnome.org/show_bug.cgi?id=694859
tests: Add max-width-chars to testwindowsize test
Broadway - Fix UNIX/Win32 detection

Finally fix this check so unnecessary headers aren't needed.
printing: Fix memory leak when listing Avahi printers

Return values of g_variant_get_child_value() were not unreffed
correctly together with one value returned by g_variant_get().
Use g_variant_get_data() instead of copying each byte separately.

https://bugzilla.gnome.org/show_bug.cgi?id=712799
x11: keep track of the screen pixel size by calculating the bounding box of monitors

This is so we always have the latest information given by XRandR (or other), and not
rely on Core protocol information that might not have been updated yet.

This is specially visible when a monitor is connected (less frequent) or disconnected
(much more frequent), callbacks on GdkScreen::monitors-changed that call
gdk_screen_get_width/height() could get the screen size previous to the monitor
rearrangement.

So in order to fix this, keep track of the latest monitors information, and calculate
the bounding box in order to know the screen size.

https://bugzilla.gnome.org/show_bug.cgi?id=715029