fixup! Add `stbt.match`
WIP: API: Add region parameter to match

TODO:
* Documentation
* Tests
Packaging: Add run-time dependency on git

For `stbt batch run`, which puts the git version of the test script
in the reports.
stbt._set_config: Don't fail if ~/.config/stbt/ doesn't exist

This happens if the user hasn't created `~/.config/stbt/` and hasn't
specified `$STBT_CONFIG_FILE`.
make docker-build: Also tag image with "stb-tester:makefile"

For convenience when testing changes to this stb-tester docker image in
another docker image whose Dockerfile can say "FROM stb-tester:makefile"
-- before this we had to edit that other Dockerfile after each change
to stb-tester.
stbt batch run: Allow running inside VirtualBox shared folder

Fixes the following error:

    mkfifo: cannot create fifo ‘rawout’: Operation not permitted
    mkfifo: cannot create fifo ‘rawerr’: Operation not permitted
make check: Don't explicitly list python files to test

This increases coverage as you don't have to remember to add your python
file to the list in the Makefile.  It also saves 15 lines of Makefile.
WIP: Pull stbt config out into seperate Python file

We want to use it from files without depending on all of stbt.py's
dependencies.

TODO:
* Resolve deriving from UITestError issue
report: Add video to the top of the testrun page

It looks great and makes the awesome video recording feature more
visible.
HACK: stbt batch summary report: Default filter from querystring
stbt batch: Return failure exit status if any of the tests fails

This makes it easier to integrate stbt-batch into external CI systems.
report: Move toward a more data-oriented design

This will make it easier to change to a database backed data-store from
the current directory-backed one, but the reason I'm doing it now is to
make it easier to customise the extra-columns, as will be necessary to add
invisible extra columns which are search-able, but not visible.  This will
be useful so we can search by full git SHA, but only display the git
version description.
stbt batch report: Generate what data we can at `run-time`

The intention is that in the future the `data` member of `Run` will be
stored in a database.  The intention is that the database stores *facts*
and we wish to perform interpretation on these facts at run-time where
possible.  In this case we move the interpretation of what to do with each
of the files until template rendering time.
report: More data-oriented refactoring
report: Refactor: Declare columns in the code rather than in the template

This gives us more flexibility to customise the columns in the report
as is required to do custom formatting on extra-columns.
WIP: report: Allow customising the columns
stbt batch report: Don't HTML escape files we read

Jinja will escape them when writing HTML out and we don't want them
double escaped.  We also want the ability to include HTML in notes.
REMOVEME: stbt-control: Take screenshot on "s"

This should be replaced by a refactoring of stbt-control to include
stbt tv by

    import stbt
    stbt.init(...)

etc. and taking a screenshot and asking for a filename with ncurses.
stbt.{warn,debug,ddebug}: don't cast unicode to python-string

Commit 0f71ebe7 made all logging output encoded as utf-8. This was to
support utf-8 characters read by OCR. However, the commit did not update
the `warn`, `debug` and `ddebug` functions, which were casting their
messages to python-string type (which is ascii) and this was causing
errors because you *can't* cast utf-8 encoded characters to ascii (not
just using `str()` anyway). This was raising UnicodeEncodeError.

e.g.:
In [8]: print 'ä'
ä
In [9]: print str('ä')
ä
In [10]: print u'ä'
ä
In [11]: print str(u'ä')
---------------------------------------------------------------------------
UnicodeEncodeError                        Traceback (most recent call last)
<ipython-input-11-383a35edd348> in <module>()
----> 1 print str(u'ä')
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe4' in...
 position 0: ordinal not in range(128)

This commit fixes the issue by removing the `str()` cast. This shouldn't
cause breakage because the python string formatter `%s` used to insert
the message into the output string is *already* calling the objects
`__repr__` or `__str__` methods (so something like `debug(1)` will just
cast the `int(1)` to `str('1')` anyway).
stbt.py: Add test that we can call debug with a Unicode string

This issue was fixed by @LewisHaley in c9d5af8 and reported by Robert
Glas on the mailing list[1].  This commit adds a test so we know it
won't recur.

[1]: https://groups.google.com/forum/#!topic/stb-tester/jpVRfQ5gGyM