Kill the spring server when the Gemfile or Gemfile.lock changes

This ensures that on the next run of a command, the correct bundle is
loaded, or the user sees the correct error message if they have
forgotten to bundle install.

I explored options for making this smarter, such as trying to
automatically restart the server with the new bundle loaded, but it just
got complicated. For example if we did this but there was an error with
the bundle, we'd want to somehow silence that error but show it to the
user on the next run of the command.

In the end I think that changing the bundle happens infrequently enough
that it's acceptable to just kill the server.
Fix breakage / warnings caused by listen 1.0
Increase default timeout on CI

This failure https://travis-ci.org/jonleighton/spring/jobs/6857030 has
the expected stdout, yet it got a timeout error, so I wonder if Travis
was just being slow and it hit the timeout. To be sure, use a longer
timeout on the CI.
Add clarification about relationship between spring and bundler binstubs

Closes #63
Make Spring.watch work inside config/spring.rb

Fixes #131, closes #132
Make ListenWatcher optional closes #128

By default spring is configured to watch_via [`listen`](https://github.com/guard/listen) is available spring will use that, alternatively spring can be configured to use `:listen`, `:polling`, or a`CustomClass`.

```ruby
Spring.watch_via = :polling
```