load-save: use g_str_has_suffix

This switches to using g_str_has_suffix instead of using g_strrstr
followed by manually checking for a trailing '\0' NUL byte
camera-view: don't reset camera zoom on allocate

This removes a spurious reset of the camera zoom in allocate_cb() which
was probably adding for debugging at some point.
autogen: Fix the name of the source file it checks

The autogen script needs a source file to verify that it is being run
from the right directory. Previously this was using main.c but that
file no longer exists so this patch makes it use rig-engine.c
Update the .gitignore

This adds rig-slave, rig-device and the files generated by protobuf to
the .gitignore
camera-view: update view/projection with new scene

when a new scene is associated with a RigCameraView we now also make
sure to update our viewing and projection transforms based on the latest
device geometry.
asset: Don't init the asset object until it succeeds

Previously the asset object would be created and if it failed to load
a necessary resource it would just directly free the asset object and
ignore the ref-counting. This messes up the ref-count debugging
because the tracking isn't informed that the object is destroyed. This
patch makes it delay initialising the RutObject until it knows the
asset has succesfully loaded.
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 video playback and pointalism effect

- Add a video texture element to RutMaterial
- Look for video assets
- Custom CoglPipeline and drawing for plain videos
  and pointalism effect.
pointalism: load/save video asset info for materials

If a material has an associated video texture then we can now serialize
and unserialize that information.

This patch also cleans up lots of trailing while space.

This patch can be folded back into the first pointalism patch