Multiple level nested and shared stages support

## Multiple level nested and shared stages support

This commit extends stages functionality:

* support "classic" stages
* set custom stages configuration root (via set :stages_root) 
* ability to have N-level nested and shared configurations for stages

### Example:

Layout:

<pre>
config/
├── deploy
│   ├── api
│   │   ├── production.rb
│   │   ├── staging
│   │   │   ├── alpha.rb
│   │   │   └── beta.rb
│   │   └── staging.rb
│   ├── api.rb
│   └── core
│       └── production.rb
└── deploy.rb
</pre>

It will generate stages:

* api:production
* api:staging:alpha
* api:staging:beta
* core:production

<pre>
$ cap api:production
</pre>

Loads:

* config/deploy.rb
* config/deploy/api.rb
* config/deploy/api/production.rb

<pre>
$ cap api:staging:alpha
</pre>

Loads:

* config/deploy.rb
* config/deploy/api.rb
* config/deploy/api/staging.rb
* config/deploy/api/staging/alpha.rb

<pre>
 $ cap api:staging:beta
</pre>

Loads:

* config/deploy.rb
* config/deploy/api.rb
* config/deploy/api/staging.rb
* config/deploy/api/staging/beta.rb

<pre>
$ cap core:production deploy
</pre>

Loads:
* config/deploy.rb
* config/deploy/core/production.rb

Currently its implemented in separate gem [capistrano-multiconfig](https://github.com/railsware/capistrano-multiconfig/).

But I think that "nested" stages feature is rather small so it might be integrated in capistrano core.

Thx.