Expose stbt's templatematch algorithm so users can build their own functions

Since stbt's translation to using pure python to do all its processing
(and just using Gstreamer as a source of video frames) with stbt 0.14,
and the introduction of the `frames()` utility to iterate over source
frames, it has been much more practicle for users to create their own
image processing functionality.

This commit makes stbt's core template matching algorithm public which
further enables users to write their own processes (I'll be making use of
it to expand the template matching front end API in a later commit.)

This commit also:
(1) Adds `load_image()` so users don't have to delve into OpenCV to
load images from disk to use in `match_template()`.
(2) Adds documentation for the 2 functions.
Move `load_image` and `match_template` to main API section in source code

Following the previous commit which created these two public API functions,
it makes sense to move them to be with the other public functions.
wait_for_all_matches: multiple template matches per frame

This new front end API function lets users specify a list of templates,
all of which must match positively at some point before the `timeout_secs`
expires. This is useful when the object(s) you are attempting to match
appear and disappear from the video source too quickly for 2 sequential
`wait_for_matches`.

Instead, this function will grab a frame, match all unmatched templates
against the frame, and repeat until (1) all templates have been matched or
(2) `timeout_secs` expires. The returned object contains key/value pairs
of the template's filename and the positive MatchResult it returned when
its match was detected.

Users should note that the more templates given to be matched, the less
frames will be matched against per second.

This commit adds a new exception to match the matching function:
`MatchAllTimeout`. This is raised by `wait_for_all_matches` when it fails
to match all the specified templates. However, for ease of debugging, it
lists all the images it *did* match as well as all those it *didn't*.
stbt.MatchResult: make it truthy based on `match` attriute

This means users can do

if stbt.detect_match(...).next():
    do_something_because_it_matched()
else:
    do_something_else()

rather than

res = stbt.detect_match(...).next()
if res.matched:
    do_something()
else:
    do_something_else()

Also, a list of MatchResults can be `any`ed or `all`ed without having to
do an extra list comprehension.
MatchResult: has `template` attribute

This is for upcoming modifications which require the ability to know what
template a `MatchResult` object was produced from.
i liked blue motion
[WIP] stbt's composable API

* motion() not yet implemented
* wait(wait()) infinite loops

Note that TEST #5 is supposed to fail as an example of `wait` timing out.
fix load_image by using _find_path
blah