Added a new element: flumpegshifterbin

The idea is to instantiate tsparse and flumpegshifter within the bin,
handle PMT message from tsparse and set pcr-pid property of the
timeshifter. This encapsulates the details about the interactions
between the timeshifter and tsparse elment.

The flumpegshifterbin currently supports only two element specific
properties which are simply forwarded to the timeshifter child
element:
- cach-size
- recording-template

Changed version to 0.10.1.2 and updated ChangeLog and README
Added a simple Python GUI app for playing videos

This app is inspired by the examples/pvr.py (which itself is based on
existing examples in Python bindings) but is much simpler and completely
rewritten to support GStreamer-1.0 and GObject introspection (manually
written bindings for GStreamer are no londger supported).

It's main purpose is to test the timeshifter element. Currently it plays by
default (no arguments) a pipeline which receives raw TS over UDP on port
10000.
If an HTTP URL is given on the command line as an argument, it will play
the pointed asset instead.
Fix whitespace
Remove support for Gstreamer 1.0
autogen: Download fluendo common build tools if not already there
flutsmpeg: Adjust time (base time) before feeding to indexer rather than after

This means that there is less information required on the "seeker" side
of the equation and should make it easier to handle PCR wrapping.  On the
down-side it is no longer possible to derive the buffer timestamp from
the contents of the buffer.
flucache: Add gst_shifter_cache_get_total_bytes_received

This will make it possible for flutsbase to find the total number of
bytes in the buffer rather than having to rely on derived classes doing
it allowing BYTES based seek events to be handled by the base class.
flutsbase: Only pass TIME based seeks to derived class
flutsmpeg: Don't rely on ts->last_time in flumpegshifter_seek

It belongs to the sink side of the element which I am attempting to
separate from the src side on which seeking is implemented.
flutsbase: Remove virtual function update_segment

Mapping from BYTES to TIME can be accomplished solely using the index
which the base class has access to.  This means we don't need to call
the any derived class virtual functions and makes seeking, and thus
the src side of the element more independent from the sink (indexing)
side.
flutsbase: Initialise segment on seeker side rather than indexer side
flutsbase: Add index property

This will allow us to get and set the index such that it can be
shared with other elements.  This is part of an effort to split
the timeshifter into multiple elements which do one thing and one
thing well.
Add timeshiftseeker element

The timeshiftseeker element is part of an effort to split the
timeshifter into multiple elements such that the indexing/seeking/
ringbuffer can be reused independently.  It is currently an empty
shell which just passes buffers and events through verbatim but
code will be moved into it.

timeshiftseeker will be responsible for doing TIME->BYTES conversion
on upstream seek events and BYTES->TIME conversion on downstream
segment events based upon an index generated externally to the
element.
flutsmpegbin: Add seeker to bin
timeshiftseeker: Add index property to seeker

This will allow us to share the index between this element and
others.
Don't leak objects if mpegshifterbin init fails
tsbin: Create index for timeshifter/seeker in bin

This allows us to share the index between different elements.
Remove index writer IDs from index API

GstIndex has a concept of "writer IDs".  My best guess is that back
in the day a single index would be shared between all streams.  This
is not the case in the timeshifter.  We share indices between
different elements by having our containing bin element
(mpegshifterbin) create the index and set it on each of our elements
as properties.  Writer IDs get in the way of this as to do real
sharing we would also have to pass a writer ID in as a property.

This commit removes the concept of writer IDs from the index class
by storing the ID in the index class itself.  This is not a real
solution as all of the implementation complexity is still present in
the index class.  Longer term I would like to replace the index
class with something much less complex so I don't fancy doing
anything about this right now.
timeshiftseeker: Move SEEK event TIME->BYTES conversion into seeker
timeshiftseeker: Move BYTES->TIME segment conversion into seeker