ges: Implement a GESGroup class, subclass of GESContainer

The GESGroup class is used to group various GESContainer
together, it can contain either GESClips or GESGroup or both.
timeline: Append missing layers when moving groups between layers

This was a missing feature of the newly added groups
timelineelement: Make sure that we will never set a negative start

Currently we can end up overflowing the start of others child of our
parent, avoid that making sure we can set our start to what was
requested by the user before actually doing it

+ Add a test
group: set priv->setting_value to TRUE when moving ourselves in _child_removed
container: Add a 'recursive' argument to the get_children method

API:
  - ges_container_get_children (GESContainer *container);
  + ges_container_get_children (GESContainer *container, gboolean recurse);
timeline: create_transitions_on_layer *before* actually commiting

Everything need to be in place before commiting, otherwize it makes no
sense at all.
track: Make it possible to disable the mixing feature

API:
  ges_track_set_mixing
  ges_track_get_mixing
ges: Allow creating an empty group.

There is no reason to have this limitation, empty group are valid
framepositionner: fix messup with propname enum.
track-element: No need to log when prio == MIN_GNL_PRIO.
test-utils: Add test file generation code.
tests: Add integration tests

Those are test with real media files, they are run separetely from other
unit tests using the make check-integration command (can be done from
the toplevel directory)