timeline: fix segfaults

don't call the timeline update, when the reference is invalid

https://bugzilla.gnome.org/show_bug.cgi?id=702605
ges: Port to the new commit based API in GNL

The GNL API changed to go from a model where user could
enable/disable updates in the composition, which leaded to races
in many places, to a model where any positioning change in the
composition is not directly done but 'cached' and then the user
has to commit those changes so they become effective in the media
processing stack.

The new API in GES is pretty similare and is basically copy
pasting this new design.

We still need to see if in some context it would make sense to add
a mode where we would commit any changes ourself at the end of our
operation for basic use cases.

Removed APIs:
  ges_timeline_enable_update
  ges_timeline_is_updating
  ges_track_enable_update
  ges_track_is_updating

New APIs:
  ges_track_commit
  ges_timeline_commit
ges-launch: Properly add UriClipAssets to the project
ges-launch: Remove xptv formatter related code

It is not usefull anymore
ges-launch: Report position while playing back

Giving more feedbacks to the user
ges: Implement GESAudioTrack and GESVideoTrack, subclasses of GESTrack
timeline-element: Make it possible to reset the timeline property to NULL

	+ Add some debug symbol
layer: Simplify a bit how we handle priorities
layer: Fix some mix up in variable names
tests:effects: Make use of normal layers, and enhance tests
ges: Make space in the GESTracks to be able to add mixing elements later

And update the tests
track-element: Set a reference to the GESTrackElement on the GnlObjects using qdata
track: Implement infrastructure for mixing
ges: Misc documentation fixes
meta-container: Add a VOLUME default meta to layers
smart-adder: Implement a GESSmartAdder bin element to be used as mixing element

..in audio tracks
smart-adder: remove volume from the bin, which quite simplifies the code.

	+ Don't be too smart, adder.
ges-uri-source: don't use gnlurisource but a custom bin.

	+ This bin is a uridecodebin when GES_TRACK_TYPE_VIDEO
	+ This bin contains a uridecodebin and a volume when GES_TRACK_TYPE_AUDIO
uri-source: when creating the audio element, set the volume to the layr volume when necessary.
uri-source: Expose the volume property.

	+ Make the pspec_hash function an internal util.
	+ Add a create_props_hashtable implementation
	+ If TRACK_TYPE_AUDIO, put the volume properties in the hashtable.