stbt.py: store `MatchParameters.match_method` as a string

Currently the `MatchParameters` constructor maps the `match_method`
argument (str) to the corresponding OpenCV match method enum (int).
While the value is passed in as a string, it is stored as an integer.

This makes it difficult to reconstruct the string representation of the
`match_method`. In addition, if it is necessary to override the value in
an existing MatchParameters instance, the mapping would have to be
performed by the user manually:

    params = stbt.MatchParameters()
    ...
    params['match_method'] = cv2.TM_SQDIFF_NORMED

This change keeps the `MatchParameters.match_method` as a string, but
converts it to the OpenCV enum at the point at which it is used (the
`_match_template()` function). A new variable `match_method_cv` is
introduced in `_match_template()` to perform the mapping.
test_detect_motion_times_out_during_yield: Fix intermittent failure

This applies the same fix as 0d460f18 did to
test_detect_*match*_times_out_during_yield.
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.
stbt.{Match,Motion}Timeout.screenshot: Document format of image

Since ca4201df, this is an OpenCV image, not a GStreamer buffer.
test_that_frames_raises_NoVideo: Fix failure on travis-ci

The failure was:

> grep: input file `/tmp/stb-tester.TXa/log' is also the output
Printable error message for NoVideo exception raised by stbt.get_frame

Before this change, the "FAIL: ..." error message printed to stdout by
stbt-run was empty (it just said "FAIL: <test name>: ").