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`
Merge remote-tracking branch 'upstream/master' into scm_subtree

Conflicts:
	CHANGELOG.md
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
Fix bug in filter code that caused Rubinius failures

Although this was fixed in commit bc7c532c5 (by forcing the values to be
Strings if they are Symbols), this commit fixes the underlying problem.

The real bug was in allowing the Symbol :all to remain in the Regexp
list when it is not needed. The :all and :none modes don't use a Regexp
and so @rex is now set to nil in those cases.
Merge remote-tracking branch 'origin/filter_fix_regex_symbol' into filter_fix_regex_symbol