Add subtree capability using :repo_tree variable

The variable `:repo_tree` now allows the specification of a sub-tree
that will be extracted from the repository when deploying. This is
useful when deploying a project that lives in a subdirectory of a larger
repository.  Implemented only for git and hg.  If not defined then the
behaviour is as previously and the whole repository is extracted.
All extraction is as before still subject to git-archive `.gitattributes`
Configuration.new accepts initial hash

for easier testing of Capistrano plugins
Merge remote-tracking branch 'upstream/master' into scm_subtree

Conflicts:
	CHANGELOG.md
Fixes Rubinius build
Merge pull request #1181 from mikz/configuration-new

Configuration.new accepts initial hash
Merge remote-tracking branch 'upstream/master' into scm_subtree

Conflicts:
	CHANGELOG.md
Merge pull request #1153 from townsen/scm_subtree

Add subtree capability using :repo_tree variable