Fix split command argument leading to error raised and incorrect path returned
Merge branch 'master' of https://github.com/capistrano/capistrano into fix_last_release_path_bug

Conflicts:
	lib/capistrano/tasks/deploy.rake
remove last_release_path and add check in rollback_release_path

- remove last_release_path task per seenmyfate
- add error check per seenmyfate
:panda_face: Updated the loading default config tasks and stages config tasks.

To show all tasks decalred in default config and stages files was missed from the tasks list.
Added default value for :stage and load all default configs. Also added cucumber tests.
:panda_face: Added ability to add args to callabcks after and before.
make sure deploying? method is available beofre testing it, fix #915
Update ´invoke()´ docu in README

Update following user report in #571
Call branch proc by default in deploy.rb template.

If a proc is used in an ask and no input is entered for the ask, `question.rb` will use the default value, which is a proc object and *not* its returned value. 

Without `.call`, we can get issues like the following, from `capistrano-rsync`:

Code:

```ruby
      checkout = %W[git reset --hard origin/#{fetch(:branch)}]
      Kernel.system *checkout
```

Error:

```
Please enter branch: |master|

fatal: Invalid object name 'origin/#<Proc'.
cap aborted!
```
Don't ignore options passed to release_roles

Previously the merge wouldn't change the options in place.

I thought about changing it to merge! but I'm not sure if it's a good idea to have such side effect.
Use a string for the ensure_stage task

Rake 10.2.0 introduced new task name checking which started raising `TypeError: no implicit conversion of Rake::Task into String` errors when trying to deploy. This is because `@top_level_tasks` is expected to contain strings, not Rake::Task objects.
Amended the git check command, "ls-remote", to use "-h"

this limits the list to refs/heads, thus reducing output noise
Remove unused and empty method definition
Merge pull request #992 from svanderbleek/remove-method

Remove unused and empty method definition
Allow lambdas with arity > 0 as config options

Previously it was possible to `set` a lambda with one or more
parameters as a configuration option, but at runtime an error was
thrown when `fetch`ing it. This was caused by the fact that every
callable was directly invoke in `fetch`.

This PR allows for lambdas with an arity > 0 to be retrieved
through `fetch`. All values that respond to call and NOT to
`arity` are still invoked directly by `fetch`.
1) removed support for capturing previous_revision
2) capturing current_revision based on correct branch and dropping a REVISION file into current_release_path during deployments
Add :previous_revision early in the Cap run
Merge pull request #994 from x3ro/arity-check-for-configuration-lambdas

Allow lambdas with arity > 0 as config options
Add password authentication tip to README.md
Merge pull request #1000 from dballona/master

Add password authentication tip to README.md
Merge pull request #937 from betesh/add_REVISION_file_and_support_current_revision_for_all_scms

Add REVISION file and support current revision for all scms.