stbt.py: Fix race condition: TypeError on NoVideo

During a NoVideo source pipeline reset `Display.source_pipeline` is
`None`.  If simultaneously `get_sample` times out stbt will try to dump
the source pipeline graph.  This causes `TypeError` to be raised:

      File ".../stbt/stbt.py", line 1493, in get_sample
        self.source_pipeline, Gst.DebugGraphDetails.ALL, "NoVideo")
    TypeError: Argument 0 does not allow None as a value

Thanks to Lewis Haley for reporting this bug and correctly diagnosing the
cause.

Fixes drothlis/#197
stbt._find_tessdata_dir: Honour TESSDATA_PREFIX

This allows me to use a locally-built (not installed) version of
tesseract for testing.
Merge pull request #200 from drothlis/tessdata-prefix

stbt._find_tessdata_dir: Honour TESSDATA_PREFIX
make check: nosetest more files (all "*.py" files)

37da66f8 tried to make `nosetests` check every python file, but filters
out files with "-" in the name because of the mistaken belief that
`nosetests` can't handle files with "-". In fact, `nosetests` can't
handle files that don't end in ".py"[1], and it was a coincidence that
all our python files that don't end in ".py" also have a "-" in the
filename.

37da66f8 filtered out some files that *do* end in ".py", such as
`stbt-batch.d/report.py` and `tests/validate-ocr.py`.

I had to pass an explicit `--match` pattern to `nosetests` so that it
wouldn't think that `report.testrun` in `stbt-batch.d/report.py` is a
unit test. Similarly, I had to rename `test` in `validate-ocr.py`
because it isn't a unit test.

[1] https://github.com/nose-devs/nose/issues/49
Merge pull request #202 from drothlis/nosetest-dot-py

make check: nosetest more files (all "*.py" files)
stbt._X11Remote.press: Log keypress

Just like all the other remote-control implementations. This makes
debugging test failures much easier.

Arguably the logging should be done by `stbt.press`, but for example the
`_SamsungTCPRemote.press` implementation logs "Pressed" first and then
logs the reply; and `NullRemote.press` logs "Ignoring request to press".
Merge pull request #203 from drothlis/log-press

stbt._X11Remote.press: Log keypress
stbt batch run: Add "-o" to specify output directory

This makes it easier to run "stbt batch run" as the target of an ssh
command. For example:

    ssh server.example.com stbt batch run -o /var/stbt-results/ ...

I didn't want to use "-C" a la make/tar/git because one day we might
want to use that to specify the input directory to save typing long test
pathnames. (`stbt batch run -C /long/path/to/tests test1.py test2.py`
instead of: `stbt batch run /long/path/to/tests/test1.py
/long/path/to/tests/test2.py`.)

"stbt batch run" doesn't output a single file so I think it's safe to
use "-o" for the output directory command-line option.

This doesn't support spaces in the output directory name, due to a bug
in "stbt batch report".
Merge pull request #204 from drothlis/stbt-batch-run-output-dir

stbt batch run: Add "-o" to specify output directory
test_that_stbt_run_exits_on_ctrl_c: Increase timeout

It seems hard to believe that the "stbt run" process is scheduled 20
times before its parent process, but this was failing occasionally on
Travis.

If the test still fails on Travis with this increased timeout, we'll
know for sure that there's something else going wrong.