event: Add running-time-offset field to all events

Events passing through #GstPads that have a running time
offset set via gst_pad_set_offset() will get their offset
adjusted according to the pad's offset.

If the event contains any information that related to the
running time, this information will need to be updated
before usage with this offset.
pad: Apply pad offsets on all events, not just segment events
event: Update running time in QoS based on the pad offsets

https://bugzilla.gnome.org/show_bug.cgi?id=722697
structure: error out when trying to fixate a fraction near an invalid target
gstbuffer: Fix range iteration

We want to iterate over items idx to idx + length

We use the len variable as the corrected number of memory to iterate
and then properly go over all items.

Fixes the issue where specifying any idx different from 0 had no effect

Spotted by clang static analyzer
input-selector: Hold pad object lock when changing tags

Avoid spurious crashes when tags are retrieved just as
new ones arrive.
inspect: print structure values of properties
pad: don't access unowned and possibly already freed event

Don't print the name of the event when ownership is given away.

https://bugzilla.gnome.org/show_bug.cgi?id=727484
testclock: add support for waiting and releasing multiple GstClockIDs

In order to be deterministic, multiple waiting GstClockIDs needs to be
released at the same time, or else one can get into the situation that
the one being released first can add itself back again before the next
one waiting is released.

Test added for new API and old tests rewritten to comply.
testclock: remove unused variable

Fixes compiler warning.
testclock: add back gst_test_clock_wait_for_pending_id_count()

.. but deprecate it. ABI stability and all that.
It's a dangerous and racy function to use.
docs: testclock: fix up Since markers
testclock: replace newly-added GstTestClockIDList structure with a simple GList

Keep it simple. Likely also makes things easier for bindings,
and efficiency clearly has not been a consideration given how
the existing code handled these lists.
collectpads: Fix memory leak in unit test
check: Add new API to set up pads from non-static pad templates
pad: Add missing space in debug output
check: Fix exported symbol name

it's _template and not _templ
queue2: fix event/preroll deadlock differently

The qlock is released between popping a buffer from the queue
and pushing it. When this buffer causes the sink to wait in
preroll, this lets a query see that the queue is empty, and
push the query then wait for it to be serviced. However, this
will not be done till after peroll, and this will thus block.
If upstream was waiting on buffering to reach 100% before
switching to PLAYING, a deadlock would ensue.

This had been fixed recently by failing queries when the
queue2 was buffering, but this happens to break some other
case (playbin on a local http server and matroska), while
this patch works for both.

See https://bugzilla.gnome.org/show_bug.cgi?id=728345
preset: Automatic code style fixes
preset: Unref return value of gst_child_proxy_get_child_by_index() instead of leaking it