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`
@townsen, thanks. I think it may be a git version issue. I'm running 2.2.0 on my machine where I push from, but the destination hosts are much further behind. I'll test some versions and see what I come up with. Thanks for the detailed explanation (and contribution) and sorry for the extra noise here.