Refactor the tests
Extract a CommandWrapper class

We want command classes to be simple, so want to handle the fact that
there may or may not respond to various different method names. Adding
this CommandWrapper keeps all the respond_to? checking and fallback
behaviour in one place.
Don't search for spring outside the bundle path

People might want to use spring on an application without adding it to
the gemfile. But if they are doing this, it's unlikely they're using
spring binstubs. So it's ok to just search the bundle path when using
binstubs.
Make binstubs less intrusive

* Made bin/spring as minimal as possible
* Use the contents of e.g. bin/rails when executing the "rails" command,
  so if the user modifies this file from the default, their
  modifications will be reflected when running bin/rails with spring.
Don't clobber existing bin files when 'springifying' them

So if a user has made modifications, their modifications will be
preserved.
Wrapped command can be nil.

In the very simplest of cases, it's sufficient to just do:

    Spring.register_command "foo"

Without having to define a Spring::Commands::Foo class.
Add some code to upgrade the "old style" binstubs to the new style
Add a way to remove spring from binstubs
README improvements [ci skip]

Talk about binstubs up-front as they are the default way of using spring
Use binstubs in all the tests

Since it's the default way for users to use spring, this ensures better
test coverage.

This also threw up and issue with bin/rake, which is solved by the
Gem.try_activate addition.
Fix rails 3.2 support
Use require rather than load in worker processes

It's faster
Add ruby 2.1.0 to test matrix

Closes #234
test rails 4.1
Use latest bundler

Travis seems to be on 1.5.0 which has a bug which affects the build.
Need 1.5.1.
Fix tests on Rails 4.1

Need to pass --skip-spring to the app generator
Don't use bundler 1.5 on ruby 1.9

It breaks for some reason. I can't reproduce locally. Sigh.