configure: use pkg-config to detect x11 and simplify checks

AC_PATH_XTRA macro unnecessarily pulls in libSM and libICE.

https://bugzilla.gnome.org/show_bug.cgi?id=731047
qtdemux: forward DISCONT from upstream to the output streams

This makes sense in DASH reverse playback, where the upstream dashdemux
will download DASH segments in reverse order, but push their buffers
forward to qtdemux and mark each segment start as DISCONT. This needs
to be forwarded downstream to the parser/decoder, otherwise it won't work.

https://bugzilla.gnome.org/show_bug.cgi?id=734443
configure: fix x11 checks to be non-fatal again

Must pass an action-if-not-found argument to
PKG_CHECK_MODULES or it will error out when
it can't find the module requested. Also fix
AC_CHECK_LIB usage, extra libs argument was
in the wrong place.
configure: build ximagesrc again when checks succeed

Third time lucky, hopefully.
docs: update for git
videobalance: Allow ANY capsfeatures, but only in passthrough mode

When changing the properties to not be in passthrough mode anymore,
we will only accept caps we can process ourselves, potentially causing
a not-negotiated error.

https://bugzilla.gnome.org/show_bug.cgi?id=720345
videobalance: Allow any raw caps in passthrough mode, not just the ones we handle
flvdemux: un-break duration querying

Commit 2b9493b5 broke this in two ways: a) we should only
pass duration queries in TIME format upstream (or at least
not those in DEFAULT or BYTE format), and b) we mustn't
overwrite the default value of 'res' from TRUE to FALSE
and not set it again later. This led to bogus durations
being reported for FLV playback from file, because TIME
queries would fail (as 'res' had been set to FALSE) and
parsers then do a BYTE query as fallback and try to
guesstimate something in return, which of course goes
horribly wrong since the BYTE size returned is for the
muxed file.
flvdemux: fix indentation
videomixer: Avoid double free of VideoConvert

https://bugzilla.gnome.org/show_bug.cgi?id=734764
videomixer: Use the best width/height/etc if downstream can handle that

Before it was always using whatever downstream preferred, while
the code and documentation claimed something different.

https://bugzilla.gnome.org/show_bug.cgi?id=727180
qtdemux: Improve framerate calculation/guessing

Change the way the output framerate is calculated
to ignore the first sample (which is sometimes truncated
in my testing) and use the new gst_video_guess_framerate()
function to recognise common standard framerates better.

Remove the code that was sorting the first 20 sample
durations and then ignoring the result.
matroska: Use gst_video_guess_framerate() function

Remove local framerate guessing function in favour of
the new gst_video_guess_framerate() function.
qtmux: Make the default timescale 1/1800 second

The old default timescale of 1 millisecond produces irrational
numbers for a lot of framerate/audio-packet-duration multiples.
1/1800 is a nicer number, as it tends to produce better fractions
and therefore slightly higher accuracy overall