Replaces the record button icons
refcount-debug: add rut_refable_dump_refs debug api

As a useful function to have while debugging, when you have a pointer to
a random object and you'd like to know what it is, where it came from
and where its been then rut_refable_dump_refs can be called from gdb to
show all the refs/unrefs of a specific object.
split-view: don't forward natural size as min size

This fixes the get_preferred_width/height implementations for
rig-split-view so that they don't forward the determined natural size as
the minimum size, and instead forward the minimum size of the largest
child.
Adds magnifying glass assets

This adds a magnifying glass icon from The Noun Project
(http://thenounproject.com/) which is licensed under the creative
commons license (CC-BY 3.0) with an exception that that attribution is
not required because we purchased the attribution waiver.

Since it might be nice to attribute anyway at some point, then for
future reference this was the suggested attribution text:

  'Search' designed by Phil Goodwin from The Noun Project
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.