Add clipping apis to GtkRoundedBox

This adds two functions for checking whether an axis-aligned
rectangle is completely outside or inside of a rounded box.
These are not trying to be exact, but fast.
css: Avoid excessive shadow rendering

The shadow rendering code had code to exit early if we determine
that the shadow is entirely clipped away. Unfortunately, the check
based on cairo clip extents fails for any clip regions that are
more complicated than axis-aligned rectangles, and we are using
a hollow rounded rectangle here. So, instead, do the check manually,
using the just-introduced API in GtkRoundedBox.
gdkwindow: Fix update area calculations for native subwindows

When recursing the update area down into native subwindows we forgot
to apply the native window position. This caused us to repaint the
wrong thing in certain cases. I noticed this when playing with the
wip/gdk-gl branch, because it was triggering unnecessary repaints
of the (native window) gl widgets.
iconhelper: always ensure a stated pixbuf

Even when we are set a pixbuf itself.

https://bugzilla.gnome.org/show_bug.cgi?id=726271
iconhelper: Simplify code

In the GTK_IMAGE_ICON_NAME case, instead of keeping around the icon_name,
create a GThemedIcon and use that. This way, we can reuse the code paths
for the GTK_IMAGE_GICON case.
GtkIconHelper: Short circuit _gtk_icon_helper_get_size in some cases

_gtk_icon_helper_get_size() is often used during size request and may
not necessary mean that the icon will be displayed immediately. In
many common cases we know the size without having to ensure a surface.
In many cases this means we can avoid loading an icon until needed, and
in the case of stateless IconHelpers such as GtkCellRendererPixbuf this
is very important as otherwise it will constantly be reloading icons
if the displayed set is larger than the in-memory icon cache.

https://bugzilla.gnome.org/show_bug.cgi?id=734651
Merge pull request #10 from endlessm/shell/4205

Shell/4205
GtkEntryCompletion: fix sizing bug with multiple cells

When using a completion with some custom cells in the cell layout,
if would often size wrong when first presented on screen.

The entry completion is the only place in the entire gtk code base
that calls gtk_tree_view_column_cell_get_size outside of gtktreeview
itself. It calls into the function before the tree view has done some
important validation on its cell state, the net result of which is
only the first element in the gtkcellareabox the entry completion uses
well actually have its size respected.

We now call gtk_widget_get_preferred_size on the tree view before
calling into the individual cell size routines, to guarantee that the
tree view has run its validate_rows routine and cell state is valid.
[endlessm/eos-shell#3976]
Merge pull request #11 from endlessm/shell/3976

Fix sizing bug in gtkentrycompletion with multiple cells