stbt-record: Fix local video display

stbt-record would correctly capture screenshots, but wouldn't show the
video on your (the test rig's) screen. This isn't a problem when you
have a monitor connected to the set-top box right in front of you; but
in a large setup the set-top boxes might not be connected to a monitor
at all.

The problem was that we were lacking a colorspace conversion in between
the video source and the X video sink. The selftests (with their
videotestsrc) worked correctly; using xvimagesink also worked correctly,
because it takes the same video/x-raw-yuv produced by our V4L2 source;
but ximagesink only takes video/x-raw-rgb, so it requires the conversion
introduced in this commit.
press_until_match searches for template image in script's own directory

So press_until_match now behaves like wait_for_match. This is how I
intended press_until_match to behave when I added such behaviour to
wait_for_match in e924b09a; that it didn't is a bug.

With basic test coverage for press_until_match.
Add debug logging to NullRemote

So I can see on the console that the script's "press" commands are being
deliberately ignored. This is useful when I forget to specify a real
--control for stbt-run.
Cleanup variable naming

To match the naming in uri_to_remote introduced in 2f99ccc4.

In theory that naming change was in the spirit of functional-style
single assignment -- but I rather wish I hadn't bothered. After all, I
still re-assign `d` to different values. Anyway, now the naming in
uri_to_remote_recorder is consistent with uri_to_remote.
Prompt for input when control-recorder is /dev/stdin

Unfortunately f != sys.stdin so this will only work when stdin is passed
in as "/dev/stdin" (maybe there are systems where it lives elsewhere, or
maybe the user specifies it as "/dev/fd/0"). Still, it's more
user-friendly than no prompt at all.
Support LIRC infrared emitters & receivers

LIRC is "Linux Infrared Remote Control", a package for sending &
receiving infrared signals via USB or serial infrared devices (the
emitters are commonly known as "IR blasters").

See the changes to README.rst for configuration instructions.

The format that lircd expects from a client wanting to *send* a signal
is the same as taken by the irsend(1) command-line tool.

The format of messages indicating a *received* signal is:

    <code> <repeat count> <button name> <remote control name>

where <code> is to be ignored. Holding down a key on the remote control
results in multiple lircd messages, with an increasing <repeat count>. I
had to try hard to release the keys quickly enough to only get a single
message, so here I'm ignoring all but the first message (with repeat
count of 0). This will need to be revisited if we need to emulate
holding down a button.

Both formats are documented at
http://www.lirc.org/html/technical.html#applications
README/manpage formatting & wording

* Reorder the possible options to --control and --control-recorder so
that the most useful ones (for production) are first: lirc, then virtual
remote, and only then the test ones.

* More noticeable sub-headings in the OPTIONS section: It was getting
quite long so the different sections weren't particularly obvious.

* Minor rewording for consistency.
README/manpage: Fix documented load order of config files

The README and load_defaults (in stbt.py) didn't agree on the order of
loading $STBT_CONFIG_FILE and ./stbt.conf. I chose to keep the current
behaviour and fix the documentation to match, because the selftests rely
on tests/stbt.conf (in the directory from which the selftests are run)
to override any local user configuration.
README/manpage: Remove unicode characters

`man` on OS X doesn't seem to like anything but ascii. :-(
(The generated stbt.1 seems correct if I cat it; the fault must be with
`man`.)