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"