Fix Connection stderr redirect spec under Qt 5.3

* qDebug behavior has changed in Qt 5.3:
  https://codereview.qt-project.org/#/c/69731/
Update for Capybara 2.3.0

This adds support for the full Capybara 2.3.0 API. There are two known
incompatibilities:

* Selenium supports outerWidth and outerHeight, which we cannot, because we
  dont' have an actual OS window.
* Selenium raises errors after interacting with a closed window. We focus the
  next available window after closing.

This commit adds the following:

* Implement Driver#close_window
* Implement Driver#current_window_handle
* Implement Driver#maximize_window
* Implement Driver#open_new_window
* Implement Driver#no_such_window_error
* Implement Driver#resize_window_to
* Implement Driver#switch_to_window
* Implement Driver#window_size
* Implement Driver#go_back
* Implement Driver#go_forward
* Support change events when clearing a text input
* Support setting contentEditable elements
* Support window.close() in JavaScript
* Don't return text from hidden elements
* Skip Capybara specs which use outerWidth, outerHeight
* Don't use Qt object ownership to manage windows
Use deleteLater to avoid possible null pointer crashes
Make sure to include QDesktopWidget
Update Appraisals
Update Travis builds

* Test Capybara 2.2 and 2.3 compatibility on all platforms.
* Drop support for Capybara 2.0.
* Only test Qt 5 on 1.9.3. The C implementation is the same for all Ruby
  versions, so there's no need to test against all platforms.
Simplify shutdown logic for Connection

* Use a QSocketNotifier listening to stdin to determine when the parent
  process has detached.
Release capybara-webkit 2.1.0

* Capybara 2.3 compatibility.
* Kill webkit_server when parent process closes stdin.
Install bundler Gem tasks in bundler namespace

* The release task in Bundler >= 1.3.1 depends on the build task, which
  conflicts with our build task, resulting in a webkit_server build
  instead of a gem build.

[ci skip]
Raise better errors if server fails to start

* When WEBKIT_SERVER_START_TIMEOUT was reached, @port would get set to
  nil. If execution of the SERVER_PROCESS returned immediately, @port
  would get set to 0. This lead to odd cross-platform behavior in
  #connect, which would try to connect to a nonsense port.
Implement modal (confirm, prompt and alert) API

* Retain backwards compatibility with legacy capybara-webkit API.
* Confirm dialogs are accepted by default; dialogs are dismissed.
* Legacy API overrides the default action, and does not raise errors
  for unexpected modals.
Add Capybara 2.4 to Appraisals
Travis config for Capybara 2.4
Don't interact with readonly elements

* This behavior changed in Capybara 2.4.
* Previously we would focus and send keypress events to readonly
  elements. Now readonly elements are ignored, and a warning is emitted
  by Capybara.
Add deprecation warnings to legacy modal methods

* Our legacy API has been replaced by an upstream API in Capybara 2.4.
Stub Capybara::ModalNotFound for Capybara < 2.4

* The modal API was introduced in Capybara 2.4, so older versions won't
  follow this code path.
Add deprecation warnings to legacy window methods

* Capybara 2.3 provides a new window API.
Update README

* Remove deprecated modal and window commands.
* Document xvfb-run as a way to start an X server.
* Note that Qt versions greater than 4.8 are supported.
* Update copyright year.
Delete pending commands on reset

* If an exception is raised in the Ruby process, it's possible for Reset
  to be sent to the server while the previous command is still running.
  This ensures that pending commands are stopped when handling Reset.
Make FindModal synchronous

* There's no need to poll for the modal when we have an event loop.