bufferpool: Add method and virtuals to set flushing state

Currently there is no other way to unlock a buffer pool other then
stopping it. This may have the effect of freeing all the buffers,
which is too heavy for a seek. This patch add a method to enter and
leave flushing state. As a convenience, flush_start/flush_stop
virtual are added so pool implementation can also unblock their own
internal poll atomically with the rest of the pool.  This is fully
backward compatible with doing stop/start to actually flush the pool
(as being done in GstBaseSrc).

https://bugzilla.gnome.org/show_bug.cgi?id=727611
pad: store last flow return and provide acessor function

Stores the last result of a gst_pad_push or a pull on the GstPad and provides
a getter and a macro to access this field.

Whenever the pad is inactive it is set to FLUSHING

API: gst_pad_get_last_flow_return

https://bugzilla.gnome.org/show_bug.cgi?id=709224
flowcombiner: add GstFlowCombiner

Adds a utility struct that is capable of storing and aggregating flow returns
associated with pads.

This way all demuxers will have a standard function to use and have the
same expected results.

Includes tests.

https://bugzilla.gnome.org/show_bug.cgi?id=709224
base: include flowcombiner header from base.h
docs: add GstFlowCombiner
flowcombiner: beautify headers a little
pad: two minor docs fixes
gitignore: Ignore VIM swap files
multiqueue: post buffering message when queues flush

The buffering status goes back to 0, so inform the application about it

https://bugzilla.gnome.org/show_bug.cgi?id=726423
element: set pads need-parent flag to false when removing

When a pad is added the need-parent flag is set to true, so when
they are removed the flag should be set back to false

This was preventing GstPads to be reused in elements (removed and
later re-added). A unit tests was added to verify that this is
working now.

The use case is tsdemux that has a program-number property and
allows the user to switch programs. In order to do that tsdemux
will remove the pads of the current program and add from the new
ones. The removed pads are kept in the demuxer for later if the
user selects the old program again.
bufferpool: fix gst_buffer_pool_has_option() documentation

https://bugzilla.gnome.org/show_bug.cgi?id=730962
docs: fix type in GstObject docs
docs: convert NULL, TRUE, and FALSE to %NULL, %TRUE, and %FALSE

This should help improve documentation generated for
languages other than C.

https://bugzilla.gnome.org/show_bug.cgi?id=730961
tests: multiqueue: fix leaks
miniobject: Add missing (nullable) annotations

gst_mini_object_replace() can take NULL mini-objects.

https://bugzilla.gnome.org/show_bug.cgi?id=730873
bufferpool: It's pool, not poo... even when talking about flushing
Revert "miniobject: Add missing (nullable) annotations"

This reverts commit 96361e9b5c5d00dc7712ff3a9acfbe10df7cd9fe.

This was not supposed to be pushed yet!
typefind: Keep still meaningfull pending events on FLUSH_STOP

Only EOS and segment should be deleted in that case.

https://bugzilla.gnome.org/show_bug.cgi?id=709868
globaldevicemonitor: connect sync-message signal on the right object

Fixes criticals at runtime and makes stuff actually work.