stbt.press: Draw black background behind the key name

`stbt.press` draws the name of the key on the output video. This shows
up on the video recorded by `stbt batch run` for each test run.

When the live TV in the system-under-test is showing white, you couldn't
see the key-name debug text. Now we draw a black box behind the text,
so the debug is always white-on-black.
Merge pull request #213 from drothlis/draw-text-with-black-background

stbt.press: Draw black background behind the key name
stbt tcp lirc control: Clarify error message

I saw "failed to connect to remote" when running via the stbt service[1]
-- which runs tests remotely, so it wasn't immediately clear to me that
the error message was talking about a remote *control*.

[1] http://stb-tester.com/blog/2014/08/23/upcoming-features-stateless-service.html
stbt batch summary report: Default filter from querystring

Anything in the URL's querystring (the part after "?") when the page is
loaded is put into the "filter" search box. Similarly, when you type
into the filter, the querystring is automatically updated to match.

This makes it easy to share links to a subset of results.

This requires using an internal undocumented function of tablequeryjs.
Since we specify the tablequeryjs version explicitly, I can live with
that. We can revisit once a solution for
https://github.com/asimihsan/tablequeryjs/issues/18 is implemented;
in the meantime this functionality is too useful not to merge.
Merge pull request #215 from drothlis/report-filter-from-url

stbt batch summary report: Default filter from querystring
test_ocr_on_live_video: Increase timeout when run under load

a0d44c71 increased this timeout because I got a NoVideo timeout when
running under heavy load (`make check` with GNU parallel installed).
If it fails again with this ridiculously long timeout then there's
probably a bug in the GStreamer textoverlay element or somewhere else.
File reorg: Makefile: Put each filename on seperate line

This will make the diffs clearer in the upcoming code reshuffle.
test_stbt_control_as_stbt_record_control_recorder: Skip if terminal too small

I should figure out how to run the test in some kind of sandboxed
environment where your current terminal size doesn't matter. But for now
this will stop the annoying failures that cause an otherwise-good `make
check` to fail.

This test is currently passing on Travis so the terminal size there is
OK.
python packagisation: Rename stbt to stbt.sh, but only in source dir

Rename the "stbt" executable (and the "stbt.in" it's generated from) to
"stbt.sh" (and "stbt.sh.in"). But still install "stbt.sh" as
"$prefix/bin/stbt".

We need to rename it in the source directory so that it doesn't clash
with the python package (added in the next commit) that is a directory
called "stbt".
python packagisation: Move stbt.py to stbt/__init__.py

This is the first step in converting stbt from a python module into a
python package. I've only moved stbt.py to stbt/__init__.py; to make
rebasing easier I'll make any necessary changes in separate commits.
python packagisation: Fix relative paths in stbt/__init__.py

In the previous commit I moved stbt.py (unchanged) to stbt/__init__.py.
Now I'm fixing the relative paths affected by the move.
python packagisation: Move gst_hacks.py into stbt package
python packagisation: Move pylint plugin into stbt package
python packagisation: Move irnetbox.py into stbt package

I considered leaving this outside the stbt package, as it could in
theory be distributed separately to stbt. However my goal with creating
this python package is that I can install it to the system python path,
so that you can import it from anywhere (not just from scripts running
with the "stbt-run" executable, or having to set PYTHONPATH to
$prefix/libexecdir/stbt). But having the stbt package on the system path
is no good if it can't do "import irnetbox". So to simplify
installation, irnetbox.py is going into the stbt package. If someone
wants to pick it up and package it separately, stb-tester's license
allows them to do so.
python packagisation: Move stbt._mkdir to stbt.utils.mkdir

This is needed to avoid circular imports when I move `stbt._set_config`
to `stbt.config._set_config` in a future commit.
python packagisation: Move stbt._named_temporary_directory to stbt.utils
python packagisation: stbt.ConfigurationError is Exception not UITestError

This is to avoid a circular import when I move ConfigurationError to the
"stbt.config" sub-package. This is a breaking change.

ConfigurationError inherits from Exception rather than another more
specific exception, so that we have an upgrade path if in future we
decide to change `get_config` to raise `TypeError` and/or `ValueError`.
python packagisation: Move stbt.get_config etc to stbt.config sub-package
python packagisation: Move logging infrastructure into stbt.logging

Mostly copied from a patch by Will Manley:
https://github.com/drothlis/stb-tester/pull/201
python packagisation: Remote controls raise RuntimeError, not UITestError

This is to avoid circular imports when I move the control functionality
into a separate sub-package in a future commit.

I want to do away with `UITestError` altogether at some point in the
future; `stbt run` treats anything that isn't a `UITestFailure` as a
test error (see also https://github.com/drothlis/stb-tester/pull/86 ).

Note that `VideoTestSrcControl.press` was raising `UITestFailure` if
the test script specified an invalid key name, but this is really a
test *error*, not a failure.