make check: Enable pylint warnings and style checks

This change (1) removes the `--errors-only` flag from the pylint checker
so that now pylint will warn about refactors, conventions, and warnings
and not just errors, and (2) applies all of the pylint recommendations
to the affected python modules.

Some sensible global pylint exceptions as well as module-specific
exceptions are added in `extra/pylint.sh`. In acceptable situations,
inline pylint "disable" codes are added in the code.

A notable change for compliance is that the stbt.py `display` and
`control` variables are now module-private variables `_display` and
`_control`.

[Committer's note: The motivation for this change is that, while we want
to enforce an 80-character line length, there are some specific cases
(tabular data-driven code, usually) where longer lines make for more
readable code. The `pep8` tool doesn't allow you to selectively disable
errors for a specific line, so this commit disables pep8's line length
check, and enables pylint's equivalent check (along with pylint's other
style checks, warnings, refactoring suggestions, etc).

If you're wondering what a specific pylint error code means in the
inline pylint directives like "# pylint: disable=R0902", use
`pylint --help-msg=R0902`.
]
Fix `make check-pylint` errors found by pep8 v1.4.2

...introduced in the previous commit, which would have been tested only
with pep8 1.0.1.

pep8 1.4.2 performs more rigorous checks than Fedora 17's pep8 1.0.1.

This fixes the following violations:

* E502 the backslash is redundant between brackets
  (stbt.py:350, irnetbox.py:297)
* E128 continuation line under-indented for visual indent
  (stbt.py:351, irnetbox.py:298)
Fix false-pass of test_gstreamer_core_elements

If the `gst-launch` command runs successfully but the pipeline never
enters the PLAYING state, the test used to pass.

This happened on OS X if I didn't have an X11 server running. This
particular test would pass, but subsequent tests would fail. The point
of this test is to catch such environmental issues.
.gitignore: .stbt-* build artifact names changed to lowercase

The .stbt-* files generated while building the gstreamer plugin are all
lowercase, so modifying gitignore to adjust.

[Committer's note: The original author (see commit 31bd0a25) hadn't
noticed this error because he was using a case-insensitive filesystem.]
stbt.conf: override user's config by using run/record explicitly

If the user has a source_pipeline set under the [run] section in their
own stbt.conf (~/.config/stbt/stbt.conf), it will take precedence over
the [global] section in $STBT_CONFIG_FILE, which is set by
tests/run-tests.sh to tests/stbt.conf. We can make sure that the correct
source_pipeline is used by putting the source_pipeline for run-tests.sh
under the [run] section.
`make uninstall` deletes libexec/stbt/*.pyc files

Before this alteration `make uninstall` failed to delete the stbt
directory under libexec because the compiled python files (.pyc) were
still present.

This change deletes any .pyc files present in libexec (as there
are likely to be more than the 2 current files in the future) so that
`rmdir $(DESTDIR)$(libexecdir)/stbt` will work as expected.
stbt-debug directory removed if test which creates it passes

test_detect_motion_with_debug_output_does_not_segfault_without_mask
creates the stbt-debug directory as part of the test but previously did
not clean it up on completion.
test_gstreamer_core_elements: Increase timeout

On some heavily-loaded systems, 2 seconds wasn't enough for gstreamer
to start the pipeline and get 10 buffers of video through to the sink.

Other than giving those slow systems more time, this won't increase the
run time of the test in the normal successful case.
Fix `make check` pep8 error introduced in 99e077f0

On Fedora17's pep8 1.0.1 (though not on 1.4.2) it was causing:

    E251 no spaces around keyword / parameter equals
tests/stbt.conf: Add `sink_pipeline` removed by error in 01d25dac

The symptom was that the tests from tests/test-stbt-*.sh didn't display
on screen if the user's own ~/.config/stbt/stbt.conf had
`sink_pipeline = fakesink`. Perhaps that is actually a more desirable
behaviour, but it needs to be a conscious decision, not a side-effect
of 01d25dac.

I'm also removing `global.control`, because 01d25dac added `run.control`
and `record.control`. Some tests for `stbt.get_config` and `stbt config`
used the `global.control` key but only because it was conveniently
there; I've changed those tests to use `global.not_special`, a config
key specifically dedicated to those tests.
`make check-integrationtests` assumes bash is installed

Since commit 78ff65ef, this checks that if you add a test case in
tests/test-*.sh, you don't forget to list it in tests/run-tests.sh.
But it only ran this check if you had bash installed (the process
substitution "<(...)" is a bash-ism).

However `make check-integrationtests` also executes tests/run-tests.sh,
which requires bash (since 49b8a0f1, 4 months earlier than 78ff65ef!).
So we're already assuming that bash is available.
README.rst: Update to match change in 1276c4e3

This commit is the result of running `make doc`. (Note that we keep the
generated `README.rst` under source control for the reason described in
2204c898, and so that it's visible to people who have just checked out
the code or are viewing the repo via a web interface.)
stbt-templatematch: Cleanup trailing whitespace