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.
Make Connection#gets non-blocking

* JRuby Timeout::timeout blocks on IO#gets. IO.connect blocks as well
  unless running in its own thread.
Initial Application Cache Support

Tests passing for a simple application cache support. To be added is
better handling of the tmp path and resetting testing at least.
App Offline Cache driver.reset! support
Use offline app cache support when ./tmp/ exists

In Rails projects it's a sure bet that tmp exists so this automatically
covers most people. With the README addition other people know to create
the directory.
Make Connection#read non-blocking

* Ensure that Connection#read will not block Timeout::timeout for JRuby
  users.
Merge branch 'offline_application_cache' of git://github.com/betelgeuse/capybara-webkit
Blacklisting can use wildcard patterns