stbt.py: Refactor mask loading into separate function

This refactors the code that loads an image mask from a file. It was
moved from `detect_motion` to a new function `_load_mask(mask)`.

This is needed in the subsequent commit, which would benefit from the
checks that the existing code performs. It would also ensure that mask
loading errors are consistent throughout stb-tester.
stbt.py: Adds `black_screen` function and 4x tests

This adds a new function `black_screen` to detect the presence of a
black screen in a video frame. It converts the video frame to grayscale,
applies a binary threshold [1] with an optional mask, and then checks
that the maximum intensity value is zero. It returns `True` if it
detects a black screen and `False` otherwise.

The logic was copied from code in the existing test
`test_using_frames_to_measure_black_screen` added in commit c96503e.
However, this version adds an optional image `mask` as well as making
the threshold value configurable.

This adds new tests for `stbt.black_screen()`:
1. `test_that_black_screen_is_true_for_black_pattern`
2. `test_that_black_screen_is_false_for_smpte_pattern`
3. `test_that_black_screen_is_true_for_smpte_pattern_when_masked`
4. `test_black_screen_threshold_bounds_for_almost_black_frame`

This also adds two new images:
* `tests/videotestsrc-mask-non-black.png`: An image mask for videotestsrc
  that masks all the non-black pixels (used by test 3).
* `tests/almost-black.png`: A 720p screenshot of a typical STB black
  screen captured with a Blackmagic card (used by test 4). It is
  detected as a black screen when `threshold>=3` but not when
  `threshold<3`.

[1] OpenCV Tutorials: Basic Thresholding Operations
    http://docs.opencv.org/doc/tutorials/imgproc/threshold/threshold.html
test_using_frames_to_measure_black_screen: Use `stbt.black_screen()`

This removes the redundant function `is_black_screen()` from the Python
code in the test and replaces the the function call with
`stbt.black_screen()`. The latter function was added in the previous
commit.
stbt.black_screen: Make default `threshold` configurable in `stbt.conf`

In actual usage, the appropriate binary `threshold` value is not
expected to change from test to test. Rather, it will likely need to be
adjusted from one configuration to another (capture card, set top box,
video output type). So it makes sense to support setting the default
threshold value in `stbt.conf` itself.

This commit sets the default threshold value in both `stbt.conf` and
`tests/stbt.conf`, and updates `stbt.black_screen` to read the value
from the configuration when it is not explicitly passed as an argument.

In addition, it adds two new tests:
* `test_that_black_screen_reads_default_threshold_from_stbt_conf`
* `test_that_black_screen_threshold_parameter_overrides_default`
Document `stbt.black_screen` in the official API doc

This updates `api-doc.sh` so that it generates documentation for the new
function `black_screen` and substitutes the default value for
`black_screen.threshold` from `stbt.conf` in the function's docstring.

This commit also adds the `README.rst` generated with `make doc`.
Merge branch 'is-black-screen'

* is-black-screen:
  Document `stbt.black_screen` in the official API doc
  stbt.black_screen: Make default `threshold` configurable in `stbt.conf`
  test_using_frames_to_measure_black_screen: Use `stbt.black_screen()`
  stbt.py: Adds `black_screen` function and 4x tests
  stbt.py: Refactor mask loading into separate function