Add gem version label
Merge pull request #222 from rafalchmiel/patch-1

Add gem version label
Add -v and --version commands
Merge pull request #227 from coop/feature/dash_dash_version

Add -v and --version commands for returning the version.
Implement a bin/spring binstub

This allows spring to be used without being installed globally (for
example if you use `bundle install --path`). It also provides a
consistent way to invoke spring.

The implementation of bin/spring is such that it prioritises gems
installed in your bundle path, but it will also fall back to gems
install globally. So you can choose whether or not to put spring in your
gem file, and whether or not to use a separate bundle path or install
your bundle globally.

Fixes #220.
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.