Adds a new RutScale widget

This adds a new RutScale widget that can show a horizontal scale with a
given length. The widget currently support scaling and panning and
specifying a focus offset.
shell: reverse picking traversal order

Since we paint the Rig editor UI using the painter's algorithm, from
back to front, picking is done from front to back. Previously we only
reversed the order with respect to the scenegraph depth of each node
visited, but this fixes the reverse traversal to also reverse the order
we iterate siblings too, since siblings can overlap.
engine: update stack input_region position

Since we now reverse the order for traversing siblings when picking this
moves the position of the input_region used for asset search results
to be at the top of the stack instead of the bottom.
Revert "engine: update stack input_region position"

This reverts commit 5fee4d7c8c11ee4ab08ff4634b74bb603989ae3e.
Revert "shell: reverse picking traversal order"

This reverts commit d1d9c20d9d6dfa9216592dd4cc6f6157d9bd3302.
object: Adds utilities for allocating objects

This adds _rut_object_alloc[0] functions for slice allocating an object
and calling rut_object_init(). This api will also verify that a given
RutType has been initialized and if not will call a given function to
initialize the type first. This will let us remove a good amount of of
boilerplate from the many objects we define in Rut/Rig.
interfaces: Adds rut_type_add_refable convenience

This adds a convenience macro for making a RutType support ref-counting
property: Adds api to bind properties with scalar cast

This adds a rut_property_set_cast_scalar_binding() function that lets us
bind two properties together so whenever a source property is changed
it's value gets set on a target property like
rut_property_set_copy_binding() but with the ability to cast scalar
values between different types.
icon-button: simplify the code

This removes a lot of boilerplate from the rut-icon-button
implementation by using the COMPOSITE_SIZABLE interface, using
rut_type_add_refable and rut_object_alloc0
Adds an IconToggle widget

This adds a new toggle widget that has no label and simply has two icons
to represent the 'set' and 'unset' states.
fold: include required headers
box-layout: various minor cleanups

This updates the code to use bool instead of CoglBool, to remove the
need for a RUT_BOX_LAYOUT macro and avoid including rut.h in favour of
including only the specific headers that are required.
property: use bool instead of CoglBool for booleans

This updates the getter/setter prototypes to use bool instead of
CoglBool for boolean Rut properties.
Adds a RutIconToggleSet widget

This adds a new widget for tracking a set of toggle icons where only one
toggle in the set can be set at any one time. This can be used for
selecting tools for example where only one tool can be in use at a time.
Adds rotation.svg asset

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:

Andrew Kelly, from The Noun Project
Adds some new icon assets
engine: hook the search toggles up

This makes the interactive toggles for refining searches work
number-slider: don't "handle" mouse down during grab

A mouse down event outside a slider while it has a grab results in the
current value being committed, but we no longer report the event as
_HANDLED because that blocks the down event being delivered to another
widget to start a new grab on a different slider for example.
timeline: Adds _get_loop_enabled api
rut-model: Adds missing _get_asset prototype