editor: start to overhaul the ui structure

Based on a mock-up made for us, this starts to refresh the look of the
ui and think more about the structure too.

This makes the following structural changes:
- we now have a bar along the top where we can deal with editor-wide
  issues (previously we didn't any space set aside for this)
- we've moved the horizontal toolbar space that was in the middle of the
  ui to now be vertical and on the right hand side. If you're running
  fullscreen then this should make it much easier to swing your mouse
  over to, to select something. Also in this location it will be more
  natural to allow the toolbar to claim more space at times for extra
  tool controls.
- The document area, and the properties bar that is tightly associated
  with the document are now lighter and appear to be projected up from
  the rest of the controls. This helps highlight the most important
  center area and also makes it clearer that the properties are closely
  related to objects selected in the center area, as opposed to tool
  controls.
scroll-bar: strip down to just render the handle

This simplifies scrollbars so we only render a minimalist handle, and
when instantiating a scroll bar you now need to specify a handle colour.
Optionally handles can also have a second colour set on them so that the
colour will change between the start and end positions. Graduating the
colour can be useful when the scrollbar has a gradient background to
make sure it always contrasts with the background.
input-region: implement sizable interface

This makes RutInputRegion implement the sizable interface which is
convenient if you want an input region to automatically be resized as
part of layouting.
split out RutButton into separate files

To try and reduce the code in rut.c this splits out the RutButton
implementation.
remove empty/unused _SIMPLE_WIDGET interface

This removes the "simple widget" interface which was empty and so
basically meaningless.
split out simple graphables from rut.c

To reduce the size of rut.c this splits out all the simple graphable
types (RutGraph, RutTransform, RutRectangle and RutNineSlice) into a new
rut-graphables.c file.
nine-slice: expose pipeline

This adds a rut_nine_slice_get_pipeline() function that gives access to
the CoglPipeline used to paint a nine-slice.
Adds RutFixed graphable

This adds a new RutFixed graphable which is a minimal type that
implements sizable but always reports a fixed preferred width/height and
ignores the preferred width/height of children so they may instead be
positioned and sized manually.
Adds initial RutFold widget

This adds a simple container for a single child which shows a label
above the child and a fold icon. When the top area is clicked then the
widget folds which updates the fold icon and either hides/shows the
given child widget depending on whether it is folding up or down.
put the assets_flow in a RutFold

This updates the assets view to put the list of assets into a RutFold
widget, currently named "Results" so the user can choose to collapse the
general results and instead focus on other buckets of results such as
"Favourites" or "Recent" which we aim to support in the future.
remove unused circle_texture member

This removes an unused circle_texture member from RigData. There is a
circle_texture associated with the RutContext which is used in several
places instead.
main.c: remove unused N_CUBES define
rut.c: remove out-of-place comment

This removes a miscellaneous comment about things to keep in mind while
developing some parts of Rut. rut.c isn't a very helpful place to keep
general notes so this simply removes the comment.
move rut_color_init_from_uint32 to rut-color.c

This moves the rut_color_init_from_uint32() initializer function from
rut.c to the more appropriate rut-color.c
split up rut-graphables

Even though the separate types in rut-graphables are tiny this splits
them also out into separate files to instead follow a consistent
approach of giving each type a separate file which can help make it
easier to navigate the code base.
add missing rut_shape_set_texture_size prototype

This adds a prototype for rut_shape_set_texture_size to rut-shape.h
main.c: avoid assigning const list to non-const var
main.c: cast onscreen to fb for _allocate
main.c: fix mixed declarations warning
main.c: remove unused variable warnings