Remove the error argument to cogl_texture_2d_new_with_size

The Cogl API has changed to lazily allocate the textures constructed
with just a size so the error argument is no longer necessary.
Don't try to update the dots buffer if there are no dots

Previously if there are no dots then Rig would still try to map a
zero-sized range of the dots buffer that it allocates. When that fails
it would then try to allocate a zero-sized buffer and update a sub
region of the attribute buffer from that. Both of these will probably
generate GL errors. This patch makes it just leave the buffer alone
when there are no dots.
Add a RutBin

This adds a RutBin widget which is a container to contain a single
child. The child can be position with padding around all four of its
sides. The position of the child when there is more space than it
needs can be customised for each axis to either be at the left/top,
center, bottom/right or to expand to fill the space.
rut-text: Add a hint text property

The hint text will be displayed on an editable text widget whenever
the normal text is empty and the widget doesn't have keyboard focus.
This will be used in the search control for the assets view so that
the user doesn't have to manually remove the hint text.
Use a RutBin for the search widget instead of a fixed size

The search wiget for the assets is now placed inside a RutBin which is
directly placed in the stack for the left side of the split view. That
way the bin will always have the full size of the split. Some padding
is set on the bin to position the search widget and it is set to
expand along the x axis. That way the search widget will automatically
change size when the split is moved instead of having an arbitrary
fixed size.
Set the hint text on the assets search widget

Instead of setting some normal text which the user has to manually
remove, the search widget now has a hint text which will automatically
be removed when the widget gets focus.
split-view: Remove some unused constants

It looks like these were left over from a copy-and-paste of the
RutInspector.
split-view: Use a constant to specify the size of the grab area

Previously the size of the grab error was hard coded in the code.
There was a discrepency between the size of the painted area and the
size of the actual input region for the grab. The input region was one
pixel bigger than the area allocated for it so it would end up
overlapping with the area for one of the children. This has been fixed
so that both sizes are now the same.
split-view: Set the child1 transform before the size

The code for handling a size change on the main editor area assumes
that the transform for the area is also correct in order to position
the window-relative viewport. This was not previously correct because
the transform was set after setting the size so it would end up using
the old position for the viewport. This patch just swaps the order so
that it works.
run with glib mainloop when using SDL
shell: Fix quitting the main loop

Previously the SDL backend was trying to quit by setting shell->quit
but this flag is completely ignored now that it is using the GLib
mainloop. This patch changes it to call g_main_loop_quit instead.
Add rut_shell_add_onscreen so that the shell can track onscreens

It's useful for the RutShell to be aware of all onscreen windows that
are used in the application so that it can eventually report events to
the right onscreen when multiple windows are used. This adds a
rut_shell_add_onscreen() function which adds the onscreen to a list.
The onscreen is automatically removed from the list when it is
destroyed.
Add a function to get the CoglOnscreen which corresponds to an event

Eventually Rig will want to support multiple onscreen windows and
we'll need to determine which onscreen relates to which event. This
adds a function called rut_input_event_get_onscreen which returns the
onscreen. On SDL2 it will walk the list of known onscreen buffers to
find one which corresponds to an SDL window with the same ID. On all
other backends there can only be one window so it will just return
that.
Add support for setting the mouse cursor image in SDL2

There is now a new function called rut_shell_set_cursor which
temporarily changes the cursor image. This takes an enum of predefined
images. When using the SDL2 backend, this will set the cursor to the
corresponding system cursor.

This function is called by the shell in response to every mouse motion
event when no other handler calls it. The idea is that a widget can
change the cursor whenever the pointer enters its input region and the
shell will then automatically change it back when the pointer leaves
that input region.
split-view: Show a resize cursor when the pointer is over the split

When the mouse pointer is over the split the split view now changes
the cursor to a resize image to make it easier to find the line to
drag.
Add a GTK/X11 backend for RutShell

RutShell now has a backend to get events via GDK. It will force Cogl
to use an X11 winsys. It will then ask Cogl for the X window ID and
create a foreign GDK window in order to get events.

The backend is optional with a configure option called --enable-gtk.
Move the init_title() function to be a rut_shell method

The function to set the title on an onscreen has been moved to a
generic RutShell method. An implementation has also been added for the
GDK backend.
Add a GApplication subclass with a menu when running with Gtk

When using the GTK backend Rig will now create a GApplication and
advertise a menu over DBus so that it can appear in the gnome shell
panel.

The RutShell is now able to manage starting the GApplication if one is
installed when the shell is run instead of starting the gtk main loop.
There is also a new function to query the GdkWindow from a
CoglOnscreen via the shell so that Rig can make the dialog box for the
file chooser be modal for the Rig window.