"stbt --help" and "stbt --version"

Supported by "stbt" itself, as opposed to "stbt run --help" which runs
the python script "stbt-run" and prints the full, detailed set of
options.
stbt-record: Fix Virtual Remote recorder

Error introduced in commit 39e3ad7.
VirtualRemote: Avoid opening a new socket on each key-press
Add test for VirtualRemote and virtual_remote_listen

I removed stbt-run & stbt-record from the 'make check' recipe because
nosetests fails because it can't find any tests (doctests or otherwise)
in those files.
Lirc & VirtualRemote: Clearer error message on failure to connect

There are several file-like objects involved in stb-tester (the control
socket, the control recorder socket, the script file) so the bare
exception backtraces were proving to be too obscure for immediately
spotting the error.

Note on the socket.error formatting: The received socket.error can
either have errno & strerror set, or message set. Instead of checking
each one, I use str(e) to retrieve the current message.

Then I change the message by changing args *and* strerror, because it
depends on the exact subclass of socket.error as to which of these
attributes is used when printing the exception (a timeout error seems to
use args, whereas a "name or service not known" socket.gaierror uses
strerror).

Note that I modify the exception object in-place and re-raise it, to
preserve the original backtrace.
stbt-record: Clearer error message on failure to write to output-file

Note that I modify the exception object in-place and re-raise it, to
preserve the original backtrace. Unlike socket.error, it seems that I
have to set the strerror attribute (rather than the args attribute) so
that str(e) shows the message I want.
stbt-run: Clearer error message on wait_for_match timeout

A single run can have quite a lot of output, and the FAIL message was
hard to spot. Now it's at the very end of the output, which is the
first thing you look at, and is consistent with the normal backtrace
order.

Example output (before this change):

    stbt-run: Match 0 found at 0,0 (last: 696,578) with dimensions 10...
    stbt-run: Match 0 found at 0,0 (last: 0,0) with dimensions 105x32...
    stbt-run: Match 0 found at 0,0 (last: 0,0) with dimensions 105x32...
    stbt-run: Match 0 found at 0,0 (last: 0,0) with dimensions 105x32...
    stbt-run: Match 0 found at 0,0 (last: 0,0) with dimensions 105x32...
    FAIL: tests/test_manual_networking_setup/test.py: Didn't find match
        for 'tests/test_manual_networking_setup/Settings-label.png'
        after 10 seconds. Saved screenshot to 'screenshot.png'
      File "stb-tester/stbt-run", line 19, in <module>
        execfile(args.script)
      File "tests/test_manual_networking_setup/test.py", line 4, in <...
        wait_for_match('Settings-label.png')
      File "stb-tester/stbt.py", line 39, in wait_for_match
        return display.wait_for_match(*args, **keywords)
      File "stb-tester/stbt.py", line 202, in wait_for_match
        raise MatchTimeout(buf, template, timeout_secs)
Add `certainty` optional argument to press_until_match

wait_for_match already takes the optional `certainty` argument.
README/manpage: Document wait_for_match & press_until_match optional arguments