Port to Gstreamer 1.0

Gstreamer 1.0 has been out for more than a year now and is where the
majority of the upstream development is going nowadays.  This change will
make it easier to develop further more advanced features such as sound
analysis and new UIs for stbt.

Using GStreamer 1.0 from Python is incompatible with Gstreamer 0.10 in
that Gstreamer 1.0:

1. Gstreamer 1.0 has a different C API to 0.10
2. Some of the elements and properties have been renamed in Gstreamer 1.0.
3. Gstreamer 1.0 uses GObject introspection for automatically generating
   Python bindings from the C API

This was mostly straightforward, but the changes to the appsink/appsrc
were quite tricky.  Because caps information is no longer attached to
buffers appsink now produces `GstSample`s rather than `GstBuffers` which
includes caps information.  Getting this right so the caps can get
through to the appsrc was a little tricky.  Also caps are now set as a
property on appsrc.

Notes:

* For GStreamer 1.0 vp8enc has replaced the property "speed" with
  "cpu-used" where speed=7 is the same as cpu-used=6.  See GStreamer
  BugZilla #684206[1] for more information.
* sink pipeline used in tests now uses xvimagesink.  This needs testing
  on machines which don't have Xv support such as in a VM(?)
* gst_to_opencv now copies the data contained in the array.  It may be
  possible to further optimise this but that will require greater
  understanding on the relationship between Python and GObject lifetimes.
* on_new_sample is called as a GObject callback and should never throw.
  This was noticed as with Gstreamer 1.0 it requires a return value.  We
  should probably catch all exceptions thrown in any callback and work out
  how to signal errors some other way.
* pylint 0.25.1 which I have on my Debian testing machine doesn't
  understand gobject introspection imports so I've had to add a pylint
  disable to the import.  Upgrading to pylint 1.0.0 fixes this but finds
  other issues with the code.  This can be resolved in a seperate commit.
* I've had to increase the default threshold in is_screen_black test as it
  seems, possibly with the move from `video/x-raw-yuv` to
  `video/x-raw,format=I420` that blacks aren't as black anymore, possibly
  as a result of GStreamer 1.0 choosing a different type of yuv in 0.10 or
  possibly due to changes introduced during the ffmpegcolorspace ->
  videoconvert change.

[1]: https://bugzilla.gnome.org/show_bug.cgi?id=684206
debugging: Dump internal GStreamer pipeline state on error

GStreamer has a debug feature where it can dump how a pipeline is wired
up as a graph.  This is very useful for debugging problems with the
GStreamer pipeline.  This commit adds the necessary hooks such that this
information may be dumped when an error occurs much like gst-launch-1.0
already behaves

The effect is that if `GST_DEBUG_DUMP_DOT_DIR` is defined in the
environment and an error occurs a GraphViz dot file will be written to that
directory.  You can then use `dot -T png -o image.png graph.dot` to convert
it to a PNG.

See [Running GStreamer Applications][1] in the GStreamer documentation for
more information.

[1]: http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gst-running.html
Don't skip test_that_video_index_is_written_on_eos on OS X

GStreamer 1.0's webmmux (from macports gstreamer1-gst-plugins-good 1.2.3
package) does work correctly on OS X.
(FAILING TEST) Don't skip test_save_video on OS X

GStreamer 1.0's webmmux does work correctly on OS X (see the previous
commit). However, test_save_video hangs indefinitely. I need to
investigate, but in the meantime I shouldn't hide the problem from
myself (or anyone else testing on OS X). test_save_video does pass on
Linux.