use new cogl_primitive_draw api

This updates rig to work with Cogl master since
cogl_framebuffer_draw_primitive() was renamed to cogl_primitive_draw().
camera-view: fix scene panning

Since adding support for selecting and moving multiple entities together
the ability to translate the scene by shift-middle clicking was broken
because the translation was using a lower-level translate_grab_entity()
function instead of translate_grab_entities() and it's only the
translate_grab_entities() function that actually registers an input
grab with the shell.
property: better handling of removing bindings

In rut_property_remove_binding we now bail out immediately if there is
already no binding and we now also make sure to ignore attempts to
create a binding with a NULL callback which should only be seen when
removing a binding.
texture: fix texture cache

Although we were looking up in a hash table for existing textures
according to a given filename, we weren't actually adding cache
entries! This changes the hash table to use g_direct_equal/hash and
create a quark from the filename to use as a key for adding a record of
each texture loaded to the hash table.
color-picker: remove binding when hiding picker

When removing the picker we weren't removing the binding for the color
button which caused us to crash later if the picker was shown again when
it it would try and create another conflicting binding.
renderer: create an object for the renderer

The intention is to support multiple alternative renderers within Rig
and since we also have some problems with how we track renderer private
state this introduces an object to represent a renderer. As a starting
point this moves engine::journal into the new RigRenderer type.
renderer: add notify_entity_changed method

This adds a notify_entity_changed method to the RutRenderer interface
and updates rig-engine.c to consistently use this to notify
rig-renderer.c whenever an entity component is added or removed.
make rig_entity_new_image_source private to renderer

This renames rig_entity_new_image_source() to image_source_ready_cb()
and makes it private to rig-renderer.c
renderer: ignore video based alpha masks

For now We assume that videos are opaque and so we can ignore them for
alpha masking.
engine: allow materials with model components

We used to disallow material components in conjunction with model
components in case the model had no texture coordinates because it was
too easy to lose a model by associating a texture with a transparent
top-left texel that would be mapped across the whole model. Since we
now use cylindrical texture mapping to generate texture coordinates if
the model doesn't have its own this shouldn't be a problem anymore.