pad: Don't ignore probe callback return value when immediately calling IDLE probe

https://bugzilla.gnome.org/show_bug.cgi?id=721096
pad: Only call IDLE probes if we are actually idle

Also only check the data types for non-IDLE probes. When we
are idle, we have no data type obviously.

Previously we were calling IDLE probes during data flow whenever
a non-blocking probe would be called. The pad was usually not idle
at that time.
pad: Keep an extra ref of the pad when calling an IDLE probe immediately

The callback might destroy the pad.
tee: Keep another ref to our one and only srcpad around while pushing

A pad probe on that pad might otherwise just release the pad, drop
the last reference and cause great misery.

https://bugzilla.gnome.org/show_bug.cgi?id=721300
tee: Remove dyn lock

It was used for pad-alloc in 0.10 but currently is completely unused
and not necessary. All pad access is protected by the tee object lock
and keeping another reference to the current pad.
pad: Check if new probes need to be called when adding/removing some

This allows blocking a pad, add a new blocking probe, removing
the first probe and then having the second probe called. Which
could then decide that data-flow should actually continue
instead of blocking now.

https://bugzilla.gnome.org/show_bug.cgi?id=721289
pad: Add unit test for adding/removing blocking probes while a pad is blocked

And make sure that these new probes are actually called if they should
instead of silently blocking the pad forever.

https://bugzilla.gnome.org/show_bug.cgi?id=721289