Modify the way we set the localization environment

Previously, we set the LANG (and LC_CTYPE) environment variables
directly in the module code and applied them with os.environ().
Instead, we are now pre-pending those variables to the environment
string used to execute the command which allows the user to
override the localization values by setting the environment values
directly (even on a per-task basis):

  - subversion: repo=file:///path/to/repos/svn_über dest=/tmp/svntest
    environment:
      LANG: "C"
      LC_CTYPE: "en_US.UTF-8"

So if a user wishes to default their LANG back to C, they can still
avoid unicode issues by doing the above.

Fixes #7060
fix #7244 recursive copy fails when setting directory attributes

- reverse the order of new_directory_list returned from split_pre_existing_dir in copy module
Merge branch 'fix-copy-recursive-issue' of https://github.com/tksmd/ansible into tksmd-fix-copy-recursive-issue
Merge pull request #7243 from jimi-c/issue_7060_lang_c

Modify the way we set the localization environment