baseparse: do not accumulate buffers on passthrough mode

If on passthrough during reverse playback, do not accumulate buffers as
baseparse will never check for DISCONT flag to push those buffers.
So just push buffers downstream as if it was forward playback.

https://bugzilla.gnome.org/show_bug.cgi?id=721941
tests: baseparse: add basic test for baseparse

Just a small test to check that basic playback works
tests: baseparse: add test for reverse playback on passthrough

Baseparse stores buffers for reverse playback to push on the next
DISCONT, the issue was that it wouldn't ever check for a discont
on passthrough mode as it skips all real parsing. This test
was create to verify this issue and prevent it from happening again

https://bugzilla.gnome.org/show_bug.cgi?id=721941
docs: ensure GstBufferPools shows up as with GObject features

GstBufferPool is a GstObject, add the _get_type function to the types file.
parse: Refactor grammar, make it more consistent and fix conflicts

https://bugzilla.gnome.org/show_bug.cgi?id=710034
parse-launch: Add some more failing pipelines

Also convert some comments about valgrind warnings to
FIXME comments. These were leaking since some time already.
parse: Add comment about why we disable the "tracing"

It did not print anything useful before anyway, everything
was commented out.

Also remove some unneeded struct members.
parse: Use GSlice for allocating and freeing links and chains
parse: Remove some C99-style comments
parse: Make sure to create and link chains in the order as written

Make this work again:
audiotestsrc ! tee name=t  t.src_0 ! queue ! fakesink  t.src_1 ! queue ! fakesink
and this fail again:
audiotestsrc ! tee name=t  t.src_1 ! queue ! fakesink  t.src_0 ! queue ! fakesink

as tee just counts itself and does not care about the pad names we request
from it.
tee: Make sure to give pads the name that was requested

Also check for uniqueness and make sure we create a new
pad index properly if some were requested with names but
the new one is not.
tee: Add unit test for requesting pad names
util: Add GST_ROUND_UP_N and GST_ROUND_DOWN_N

These are generic rounding macro that works for any power of two.
doc: Update sections with the new rounding macros
segment: gst_segment_offset_running_time() will be available in 1.2.3
multiqueue: prevent buffering forever with playbin

When prerolling/buffering, multiqueue has its buffers limit set
to 0, this means it can take an infinite amount of buffers.

When prerolling/buffering finishes, its limit is set back to 5, but
only if the current level is lower than 5. It should (almost) never be
and this will cause prerolling/buffering to need to wait to reach the
hard bytes and time limits, which are much higher.

This can lead to a very long startup time. This patch fixes this
by setting the single queues to the max(current, new_value) instead
of simply ignoring the new value and letting it as infinite(0)

https://bugzilla.gnome.org/show_bug.cgi?id=712597
inputselector: removing duplicate field position

It is already stored inside the GstSegment struct and
was only duplicating information. Also removed some
weird positon if/else that would possibly change the
segment that was going to be pushed downstream
parse: Some minor fixes

Fix destructor segfaulting
Expect 0 grammar-ambiguities
Fix order of bin-properties assignment

https://bugzilla.gnome.org/show_bug.cgi?id=710034
capsfilter: Only set caps on the srcpad if it's activated in push mode

https://bugzilla.gnome.org/show_bug.cgi?id=722289
info: move some env-var checks from gst to gstinfo as well

We were doing some log related initialisation in gst.c after calling
_priv_gst_debug_init(). Just move it there for consistency.