stbt.Display.frames: Raise `NoVideo` instead of returning `None`

...when there is no video available from the GStreamer source
pipeline (i.e. the video-capture hardware).

This allows callers to distinguish between "no video available" and
"we've received so many frames that the timeout_secs we specified has
been reached".

Functions like `detect_match` and `wait_for_match` will now raise
`NoVideo` instead of `MatchTimeout` when there is no video.

`NoVideo` is considered a test *failure* (not an *error*) because it
could mean that the system-under-test has crashed or otherwise stopped
delivering video.

Of the two video-capture hardware devices that I have experience with,
only the Hauppauge HDPVR will stop delivering frames when it has no
input video, and thus will trigger this timeout. The Blackmagic
Intensity Pro card simply continues to deliver black frames when it has
no video on its input (this will be detected by a `wait_for_match` in
the user's script that is looking for something other than all-black).
stbt.get_frame: Wait for the next available frame

If called before any frames are available (e.g. before the GStreamer
pipeline has fully initialised, or if the system-under-test isn't
delivering any video), `get_frame` will wait up to `timeout_secs`
seconds. Previously `get_frame` returned `None` if no video was
available.

One minor consequence of this is that the screenshot attached to the
`MatchTimeout` raised by `wait_for_match` is *guaranteed* to be a frame
*after* the last frame analysed by `wait_for_match`, instead of
only *sometimes* being a different frame. Maybe we can attach the actual
frame to each `MatchResult` object, but that's for a different commit.

Fixes #23, fixes #33.