Refactor tests
Correctly report the exit status of the command

Fixes #57
Refactor assert_speedup
Add `spring status` command
Add help output to Spring::Client::Status.
Show distance ago that processes started in title

Example:

$ bin/spring status
Spring is running:

25233 spring server | rails-3-2 | started 51 secs ago
25331 spring app    | rails-3-2 | started 43 secs ago | development mode
Update README examples
Merge pull request #77 from rjackson/add_description_to_status

Add help output to Spring::Client::Status.
Fix logic error
Have one global server instance, rather than per-session

The global instance is still tied to a particular session, so if that
session ends, then the server will die.

See #78.
Allow multiple commands to run at once

E.g. if you have several terminals open and are running two test
commands at once.

Closes #78
Teach commands to parse Rails env from command-line arguments

Some commands (e.g. `runner` or `console`) allow users to specify the
Rails env (e.g. `rails runner -e test` or `rails console test`). This
commit parses options passed to `spring (runner|console)`, using some
poor man's `optparse`.

Before - this would be the buggy behaviour:

    $ spring runner -e test puts\ Rails.env
    development

After - spring parses the `-e` option:

    $ spring runner -e test puts\ Rails.env
    test

Supported options are:

- runner -e some_env
- runner --environment=some_env
- console some_env

A side effect of this change is that `Command#env` may now return `nil`,
in which case `#rails_env_for` will fallback to RAILS_ENV, etc.