Update to Capybara 2.4

Of course, just as we merged 2.3 support, Capybara 2.4 was released!

The entire suite is green with the exception of the new modal API. The biggest change is https://github.com/jnicklas/capybara/pull/1322. However, I've taken a first pass at implementing the required changes and it doesn't look too bad.
I found a much easier way to ensure that we don't process two commands in the event of an exception/Reset cycle. However, in making `FindModal` synchronous I discovered a bug in JRuby: `Timeout::timeout` blocks when reading from a socket. This results in the timeout block executing, raising an exception after the block returns if the timeout is reached, but never timing out in the case that the underlying call blocks. This is an issue for synchronous `FindCommand`.