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
Don't hardcode :restart task in deploy cycle
Moving :restart into confing/deploy.rb example
Fixed #692
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
Add hook for deploy failure

If an error is raised during a deploy, the task `deploy:failed` will be
triggered.  Custom tasks can hook into this using `after`:

    after 'deploy:failed', :send_for_help do
      #
    end

I've also taken the opportunity to provide a marginally more useful
error message before triggering the task.

By default, this 'deploy:failed' will only be triggered when running
`cap <stage> deploy` - to trigger after individual tasks use `set
:deploying, true`

This closes #708 and replaces
https://github.com/capistrano/capistrano/pull/720
Merge pull request #756 from capistrano/feature/deploy-failure-task

Add hook for deploy failure
Changelog entries for 3.1.x release