ges: Protect from Gst dynamic callbacks

The pad-added and no-more-pad signal can be emited from any thread
so we have to protect our code from that
tests: Add a basic test for pipeline state change

Add some test utils to create a pipeline
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
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
Misc documentation fixes
meta-container: Add a VOLUME default meta to layers
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: make the volume controllable.

	+ Add a create_props_hashtable implementation
	+ If TRACK_TYPE_AUDIO, put the volume properties in the hashtable.
ges-uri-source: Refactoring work.

	+ Categorize functions (Callbacks, vmethods)
	+ make more generic functions for the creation of the bin.
ges-smart-adder: ges-meta-container.h is not needed anymore.
ges-layer.c: notify priority changes.