entry: add rut_entry_set_icon api

This adds a rut_entry_set_icon function that lets us show an icon at the
left of a text entry. This will be used for example to show a search
icon for search entries.
ui: show search icon in asset search entry

This adds a small magnifying glass icon to the left of the text entry
used for searching assets.
rename 'engine' variables

Since renaming RigData to RigEngine we were left with lots of variables
in rig-transition that were confusingly renamed from 'data' to 'engine'
even though they don't relate to RigEngine. This patch gives those
variables more meaningful names again.
copy strings for boxed values from protocol buffers

When we are unserializing a ui from protocol buffer messages we
sometimes initialize boxed types but weren't copying strings and
destroying the boxed type later would try and free an invalid pointer.
assets: show asset categories in the results

We now break down asset search results into categories and give each one
a header.
allow ignoring load errors with RUT_IGNORE_LOAD_ERRORS

To avoid aborting if there is an error loading a file you can now set
RUT_IGNORE_LOAD_ERRORS=1 and rig will only emit a warning for issues
noticed while loading.
load: give shapes a default 100x100 size if no texture

Although it's not really meaningful to load a shape component when there
is no associated texture, we don't simply discard the spurious component
when loading but instead give it a default 100x100 size.
Add a seperate camera for play mode

Play mode now has a seperate entity to represent the camera. This is
automatically added to the scene if it doesn't already exist after
loading a file. The camera is not internal so it can be animated,
serialized and saved. The RigCameraView now uses this camera instead
of its view camera when in play mode. The entity has a handle entity
so that it can be selected and will be visible in the scene. However
it's currently quite difficult to find it because it is usually
positioned far away from the scene.
Reinstate the Ctrl+C key to select the camera

The Ctrl+C key used to select the view camera so that its properties
could be manipulated. This was removed since the switch to a separate
camera view in bf635357 made this difficult. This patch brings the
keybinding back but makes it select the global play camera instead of
the view camera. This is useful because it's not always easy to find
the handle for the play camera if it is far away from the scene.
camera-view: Add a button to move selected entity to camera position

Pressing Ctrl+J now moves the selected entity to the position of the
view camera and also copies its rotation. This will later be useful to
move the entity representing the camera for play mode to match the
view camera.
Add api for changing scrollbar color + lighter default

Notably the scrollbar for the asset list was hard to see against its
background and also highlighted that having just a single colour for all
scrollbars was too limited. This adds api to let us set the scrollbar
handle colour and also makes the default colour lighter.
Adds new RutIconButton widget

This adds a new button widget that lets you specify specific icons to
use for the different states; normal, hover, active and disabled. A
label can also be specified and you can specify whether the label should
be above, below or to the side of the icon.
Use RutIconButton for connect buttons

This switches to using the RugIconButton widget for the button that
connects to a target device.
bin: queue redraw when setting child

This makes sure we queue a redraw when a child is added to a RutBin
for simple sizables return natural size of 0

This changes rut_simple_sizable_get_preferred_width/height to return 0
for the natural size instead of returning the current size.
shrink the light model

This scales down the ply model used to represent a light so the light
isn't so distracting, obscuring the scene itself.
Add support for resetting the view by pressing 0

The most common view to want to see a scene from is face-on to the
middle of the scene so now you can press the '0' key to reset the
navigation camera.
Hide and show light when entering/leaving play mode

The light handle is only intended for editing so that the light itself
can be selected to be able to manipulate properties. This makes sure we
don't show the light handle while in play mode.
icon-button: center the labels

This makes sure the labels for RutIconButtons are centred on the x axis
asset view: add selector icons

This adds various selector icons for the asset view, for geometry,
images, logic, sound and video. For now these are simply place holders.