basesink: Don't clip the reported position in PAUSED to after the last buffer end timestamp

Otherwise we jump forward when pausing, and go backwards a bit again
when resuming playback.
basesink: Update start time when we lose our state

Otherwise we report not the correct position while the state is lost.
fakesink: Update positions we're checking for after a state is lost
multiqueue: Update buffering status and maybe post buffering message right when enabling buffering
queue2: Update buffering status and maybe post buffering message right when enabling buffering
gst: init new flag types to pass make check
tests: make netclientclock test faster and less flaky
queue2: fix event/preroll deadlock

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.

We fix it by refusing the query when buffering, as per Wim's
recommendation on IRC.
buffer: don't clear TAG on NULL buffer

When the buffer fails to copy, don't clear the TAG on the NULL pointer.
basesink: copy last_sample on DRAIN

Make sure we don't hold a ref to a buffer from before the DRAIN query by
making a copy of the last_buffer.
launch: place the deep-notify on the right pipeline

If the toplevel bin is not not a pipeline, we place the bin in a
pipeline. Also make sure that we connect to the deep-notify of this new
pipeline because we will g_signal_handler_disconnect() from it later.