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.
python packagisation: Move remote controls to stbt.control sub-package

This makes sense because:

* `stbt.control` has no dependencies beyond the standard Python libraries,
  unlike `stbt/__init_.py` which depends on GStreamer, OpenCV, etc.
* The interface between this file and `stbt/__init__.py` is very narrow:
  it's limited to `uri_to_remote` and `uri_to_remote_recorder`.

The original motivation for this (and most of the patch) came from Will
Manley, before I started converting stbt to a python package. Will
wanted to install `fake-lircd` without all the stbt dependencies, for a
light-weight way of providing a proxy for any of these remote controls.
Once we figure out a way of doing `import stbt.control` without loading
all the GStreamer etc. machinery in the main `stbt` package[1], we can
package `fake-lircd` and `stbt/control.py` for deployment.

[1] Perhaps with a multi-directory package that only installs the bits
    we want to use:
    https://docs.python.org/2/tutorial/modules.html#packages-in-multiple-directories
python packagisation: Fix stbt.press pylint warning

Pylint was complaining that "Attribute 'time_of_last_press' defined
outside __init__" in spite of the "pylint:disable=W0201" annotation.
It seems like a bug in pylint where the annotation is ignored if the
object's class is defined in a different file. Storing the time of
the last press as an attribute of the `press` function itself avoids
this warning.
python packagisation: Mention in release notes as "developer visible changes"
Merge pull request #217 from drothlis/python-package

Convert `stbt` module into Python package

This allows us to split up the functionality like `import stbt.control`,
`import stbt.config` (though the existing public API is still exposed
directly at the top-level `stbt` namespace, and that is what test
scripts should continue to use).

It keeps the python files a bit easier to manage (stbt.py is at 3k+
lines).

It allows us to more explicitly define the interfaces between different
parts of the code.

And I think it will allow us to package certains parts independently
(for example packaging `stbt/control.py` with `fake-lircd` when we want
to deploy `fake-lircd` somewhere without the rest of stbt and all of its
dependencies).

Further cleanup is still possible but I'm merging this now because I
don't want to go through the work of rebasing it if anything changes
on master in the meantime.