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 pull request #717 from capistrano/feature/no-release

Introduce `no_release` server option