python packagisation: Take APIs to document from stbt.__all__

Instead of maintaining the list in 2 places. The documentation is now
sorted alphabetically instead of thematically, but I think that's
appropriate for reference documentation -- the man page isn't a tutorial.

I had to add a docstring to `ConfigurationError` so that it would
display correctly in the generated file.
Merge pull request #218 from drothlis/python-package-2

Some minor enhancements missing from 8ae1c0c4.
Refactoring: Factor out loading templates

In preparation for adding `stbt.match`.

Internally we now pass around an `_AnnotatedTemplate` object rather than
an `numpy.ndarray` so we can attach the template name and any other
information we wish to. This tidies up an number of bits of code and
should make them more robust to changes in the future.
Refactor drawing MatchResults on frames

We can re-use this when adding the `stbt.match()` API.
Add `stbt.match` to search a single frame and return MatchResult

Added new API `stbt.match` which was previously conspicuous in its
absence.  It simply searches for a template match in a video frame,
returning a `MatchResult`, and notably not throwing an exception if the
template cannot be found.

This, in combination with the ability to treat `MatchResult` as a
boolean (be15b5d8) makes it much easier to compose matching operations
in user code. e.g.:

    assert stbt.match('template.png') or stbt.match('template2.png')
stbt.match: Add region parameter

This allows restricting the match operation to a specific area of the
screen.
Merge pull request #182 from wmanley/api-stbt-match

API: Add stbt.match
Fix test_that_stbt_templatematch_rejects_invalid_parameters on OS X

33e8e356 added an `abspath` before passing the template filename to
`stbt.match`. On my OS X system, where `/var` is a symlink to
`/private/var` and `TMPDIR` is inside `/private/var`, the template
filename was showing as `/private/var` but `$PWD` was just `/var`
so the test's check was failing.
Cleanup: Use "cv2.cv.CV_FILLED" instead of "-1" magic number
python packagisation: Move implementation from __init__.py to core.py

This seems to be more standard in python projects -- __init__.py only
imports what it needs to define `__all__`.

It also allows `pylint` to detect "unused import" errors, and isort to
detect imports not sorted according to the PEP8 coding standards -- in
both cases skipping files named "__init__.py" seems to be hard-coded
into those tools.