stbt.py: Add video transformation pipeline

The video transformation pipeline allows a transformation to be made on
input video to stb-tester.  This will be useful for Smart TV support as
the source_pipeline in this case is a video from a camera pointing at a
TV but we want to transform it such that stb-tester operates on what is
being displayed on the TV screen.

It is not possible to append such a transformation to source_pipeline
itself because there is a leaky queue after the source_pipeline.  This
leaky queue exists because stbt's image processing algorithms aren't fast
enough to analyse every frame in real time.  By dropping frames
(particularly when under load) we keep up with the live source.
Unfortunately the transformations required to undistort the image of a TV
can themselves cause significant load.  This was causing a runaway effect
where the image transformations would cause load, slowing the ability for
the image processing to read frames, causing frames to be dropped and all
the work that went into creating the frames to be thrown away.

This transformation pipeline is inserted **after** the leaky queue so we
are guaranteed that every frame we transform will be processed by stbt.
As such we must be very careful what we put in the transformation pipeline:
queues (buffers) will introduce latency so should be avoided if possible.
For now it's safer to consider it for internal use only.