Fix old ticket #9092 where a playbook can enter in recursion

This can be tested with this command :

    ansible -c local -m copy -a 'src=/etc/group dest=foo/' all

This is a corner case of the algorithm used to find how we should
copy recursively a folder, and this commit detect it and avoid it.

Check https://github.com/ansible/ansible/issues/9092 for the story
Added support for deploying virtual machine from a virtual template
Update win_user module to support more user options and group membership changes.
Update win_feature module to work on server 2008 and fail with error message on non-server windows, fix output messages and error handling.
Fix #91: Expand user home folder for the key_file path of the git module
Find the actual commit annotated tags refer to instead of the tag object.
Fixed postgresql_db failing on Python 2.4 with --check
Added support for deploying virtual machine from a virtual template
Fixed a typo on power options
Fixed a typo on power options
Minor win_user fixes based on feedback.
Ability to specify new SSD EBS option
added version
Added the ability to remove snapshots

Added state option, and accompanying snapshot_id option for
when state=absent.
Some cleanups to the git module
Fix git mod so that we switch to the desired version even if it was previously downloaded
Merge pull request #472 from ansible/git-cleanup

Git cleanup
Clarify possible variable value in the docs.
Before pulling submodules from repos add ssh hostkeys for those submodules

Fixes #9655
Change git update param documentation to match reality