Add initial rig_text_t component

UI text used to be handled by rut_text_t but now the aim is to handle
text shaping, wrapping and rendering more directly in Rig. This will
give us tighter control over typography and over layouting + rendering
optimizations compared to what we have currently with CoglPango for
example. This also lets us avoid numerous dependencies including glib,
pango and cairo.

This builds on Freetype for glyph rasterizing, Harfbuzz for shaping, ICU
for implementing the unicode bidirectional text algorithm + providing
unicode meta data and Fontconfig for matching fonts.

Since all of the above libraries are small and portable (with the
exception perhaps of libICU which is rather clunky to work with sadly)
we don't introduce any further layer of abstraction for portability
which helps keep our code fairly small and malleable as Rig's needs
evolve.

A key aim here is to provide consistency across the different platforms
that we want Rig to support which would be difficult if rasterizing and
shaping behaved slightly differently on each platform for example.
cogl: add instanced rendering support

This adds a cg_attribute_set_instance_stride() api that lets
applications specify that an attribute should be read by the gpu on a
per-instance basis instead of a per-vertex basis.

Multiple instances of a primitive can be drawn with
cg_primitive_draw_instances()