Allow configuration location to be configurable

This change allows both the `deploy_config_path` and `stage_config_path`
to be moved from the default locations of `config/deploy.rb` and
`config/deploy` respectively.  These values __must__ be set in the
`Capfile` prior to `capistrano/setup` being called, for example:

    set :deploy_config_path, 'app/config/deploy.rb'
    set :stage_config_path, 'app/config/deploy'

    # Load DSL and Setup Up Stages
    require 'capistrano/setup'

Fixes #610
Merge pull request #684 from capistrano/feature/configurable-config

Allow configuration location to be configurable
Don't do :cleanup twice

As it's already beeing called from https://github.com/capistrano/capistrano/blob/master/lib/capistrano/tasks/deploy.rake#L22
Update README.md

add missing "bring" to example sentance
Merge pull request #710 from nigelramsay/patch-1

Update README.md
Set stage at the beginning to be able to use it from config/deploy.rb
Warn developers that :all is a meta role
Fix for #705
Merge pull request #711 from kirs/role-all-warning

Warn developers that :all is a meta role
Merge pull request #712 from kirs/patch-6

Set stage before requiring config/deploy.rb
Default stage template cleanup

Since `stage` is already set (https://github.com/capistrano/capistrano/pull/712), we don't need to declare it twice here.
Merge pull request #713 from kirs/patch-7

Default stage template cleanup
Merge pull request #709 from kirs/patch-5

Don't do :cleanup twice
Introduce `no_release` server option

In order to provide a way for a server to perform tasks as part of a
deploy but without being involved in the standard deploy flow, all
included tasks will now prefer `release_roles` over `roles`.  For
example:

    on release_roles :all do
      #
    end

This behaviour is implemented using `exclude`, a new option when
selecting roles.  `release_roles` is equivalent to:

    on roles :all, exclude: :no_release do
      #
    end

Any server defined with `no_release: true` will be excluded from these
tasks:

    server 'localhost', roles: %w{db}, no_release: true

`exclude` can also be used in user defined tasks against any attribute, for example:

    server 'localhost', roles: %w{app web}, inactive: true

    on roles :app, exclude: :inactive do
      #
    end

This commit resolves #686
Merge branch 'master' into 3.1.x
Only import deployment flow

Not everyone uses the typical capistrano deployment process. Recap
(https://github.com/freerange/recap) is a good example. This allows
those who want to only have the deployment flow as a framework for their
own custom deploy.
Don't hardcode :restart task in deploy cycle
Moving :restart into confing/deploy.rb example
Fixed #692
move the git ssh helper to application path
when the git-ssh helper is only in /tmp then deployment done by two
different users will make this file not writable for the second user,
to avoid that problem I have added extra `fetch :application`.
Merge pull request #717 from capistrano/feature/no-release

Introduce `no_release` server option
Merge pull request #730 from kirs/no-restart-task-hardcoded

Don't hardcode :restart task in deploy cycle
use lambda for late evaluation of :application