Explicitly require SSHKit DSL

Required following https://github.com/leehambley/sshkit/pull/28
Merge pull request #620 from capistrano/feature/require-sshkit-dsl

Explicitly require SSHKit DSL
Implement ROLE filter

Target roles by including an env variable:

    ROLES=app,web cap production deploy

Or by setting `filter` or `select` variables:

    set :filter, roles: %w{app db}

Both variables will be applied if both are defined

Closes #446, depends on https://github.com/leehambley/sshkit/pull/29
Merge pull request #621 from capistrano/feature/role-filtering

Implement ROLE filter
Exit if unable to read from remote git repository

Related to #508
Use `git archive` to create release

This commit replaces `checkout` with `archive`, allowing files and
folder to be excluded by include a `.gitattributes` file in the repo:

    features/ export-ignore
    spec/     export-ignore

This provides `copy_exclude` behaviour discussed in #515
Merge pull request #626 from capistrano/feature/export-ignore

Use `git archive` to create release
Shoot at fixing #627.

This patch checks the list of releas directories first, assuming that
the list returned is an array (i.e responds to `#any?()`). If true then
an `rm` is called after mapping the release names onto the end of the
release path (`#join()`). In case the old release directories list is
empty, then an info message is broadcast through the i18n system
indicating that there is no work to be done.

@seenmyfate one thing is not clear to me here, which is what happens if
two servers have differing release lists, it appears that as we're
inside an `on()`, the `capture()` and all subsequent conditionals should
be host specific, which is important if we concatenate the list of
release directories and expect that one single `rm` command can rule
them all?
Merge pull request #629 from capistrano/bug_fix/672

Shoot at fixing #627.
Alter installation instructions

Recommend installing from Github while we continue to add new features
Ensure `stage not set` warning is displayed correctly
Merge pull request #636 from capistrano/feature/correct-stage-not-set-warning

Ensure `stage not set` warning is displayed correctly
Fix default configuration load order

Ensure application specific configuration is loaded after
`load:defaults`.  This closes #640 and
https://github.com/capistrano/bundler/issues/5
Move requires to `capistrano/all`

This removes the need to set `require: false` in your Gemfile. Should
prevent the issues described in #582 reoccurring.

(also https://github.com/capistrano/rails/pull/15)
Merge pull request #649 from capistrano/feature/require-less

Move requires to `capistrano/all`