Refactor: Make uri_to_remote_recorder more declarative

The function was getting rather long so I decided to refactor it mistaking
it for `uri_to_remote` which I'd planned to modify.  Arguably this is
still an improvement reducing the number of lines by 14.
Refactor: Make `uri_to_remote` more declarative

The function was getting rather long so I decided to refactor it before
adding the new remote type `X11Remote`.  This is more declarative.
Remotes: Add support for sending keys to X11

Can be used with GStreamer's ximagesrc for desktop automation, testing
applications, websites and set-top-box UIs written in HTML5.
test_x11_remote: Tear down Xorg & xterm in event of test failure

Otherwise the next time you run the tests it says "Skipped: There is
already a display server running on :99".
test_x11_remote: Fix finding xterm on Mac OS X

Running this test on OS X requires installing XQuartz[1], which installs
xterm into /opt/X11/bin. (You'll also have to install xdotool using
macports or similar.)

[1]: http://xquartz.macosforge.org/
Merge pull request #173 from wmanley/control-xdotool

Add support for sending keypresses to X11
README.rst: Update copyright
API: Include the region of the match, not just the position

`MatchResult.region` contains all the information that `position` does,
plus indicating the size of the matched area.  This can be useful for OCR
which takes a region to read from.  So with this change it's easy and
convenient to read the text next to a matching icon for instance:

    text = ocr(region=wait_for_match('icon.png').region.extend(right=200))

This changes the arguments `MatchResult` constructor.  This would be a
backwards compatibility break but `MatchResult`s should only be being
created by core stbt code and not by user code.  Still this is something
to watch out for.

Users can still write `pos = match_result.position` so the user facing API
has not been broken.
fixup! API: Include the region of the match, not just the position

(Minor documentation tweaks)
Fix display of `Region` documentation in man page

In my terminal, `man stbt` was showing this:

      01234567890123
    0 aaaaaaaa
    1 aaaaaaaa
    2 aaaaaaaa
    3 aaaaaaaa
    4 aaaaaaaaaaaca
    5 aaaaaaaaaaaaa
    6 aaaaaaaaaaaaa
    7 aaaaaaaaaaaaa
    8     aaaaaabaa
    9     aaaaaaaaa

Instead of this:

    0 ░░░░░░░░
    1 ░a░░░░░░
    2 ░░░░░░░░
    3 ░░░░░░░░
    4 ░░░░▓▓▓▓░░▓c▓
    5 ░░░░▓▓▓▓░░▓▓▓
    6 ░░░░▓▓▓▓░░░░░
    7 ░░░░▓▓▓▓░░░░░
    8     ░░░░░░b░░
    9     ░░░░░░░░░

(Those solid block characters are outside of 7-bit ascii.)
Fix display of `Region` documentation in web page

Unlike the man page (generated by rst2man), the web version at
http://stb-tester.com/stbt.html is generated by pandoc. Pandoc
requires that each line in an indented code block be indented
at least as much as the first line.
fixup! API: Include the region of the match, not just the position
Use pylint 1.1.0 on Travis CI

This should minimise differences between `make check` on developer's
machines and Travis CI. 1.1.0 is the same version as in Ubuntu 14.04.

Pylint 1.x knows about namedtuple members[1] so we no longer have to
ignore E1101 errors regarding stbt.Position, stbt._Rect, stbt._Size,
and stbt.Region.

[1] http://www.logilab.org/revision/148201
Ignore pylint error on Travis CI

The error was:

    stbt.py:1680: [E1120(no-value-for-parameter), Display.teardown] No
    value for argument 'self' in unbound method call

referring to `Gst.Event.new_eos()`, which is a static method, but I
guess that pylint doesn't know that.

There are 2 very odd things about this:

1. This error doesn't happen on my own machine running the same version
   of pylint (1.1.0).
2. extra/pylint.conf says `ignored-classes=Event`, so pylint should be
   ignoring any errors related to `Event`.

Note that E1120 exists on pylint 0.28, so users of that version
shouldn't get an error due to the newly-introduced "pylint: disable"
annotation.

Other things I tried before settling on this solution:

* Upgrading Travis CI to pylint 1.2.0 (same error happens; I decided to
  stay on 1.1.0 because that's the version on Ubuntu 14.04).
* Changing extra/pylint.conf to say `ignored-classed=Gst.Event` (same
  error happens).