<!--- Verify first that your issue is not already reported on GitHub -->
<!--- Also test if the latest release and devel branch are affected too -->
<!--- Complete *all* sections as described, this form is processed automatically -->

##### SUMMARY

Recursively copying changed directories does not work if the changes are deeper than one directory level. If contents the top-level src directory appears unchanged, the whole directory appears unchanged.

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
<!--- Write the short name of the module, plugin, task or feature below, use your best guess if unsure -->

copy

##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```paste below
ansible 2.8.1
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/home/akorsunsky/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3.7/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 3.7.3 (default, May 11 2019, 00:38:04) [GCC 9.1.1 20190503 (Red Hat 9.1.1-1)]
```

##### CONFIGURATION
<!--- Paste verbatim output from "ansible-config dump --only-changed" between quotes -->
```paste below
ANSIBLE_PIPELINING(/etc/ansible/ansible.cfg) = True
INTERPRETER_PYTHON(/etc/ansible/ansible.cfg) = auto
```

##### OS / ENVIRONMENT
<!--- Provide all relevant information below, e.g. target OS versions, network device firmware, etc. -->

- Distribution: Fedora 30, 64 Bit
- Python: 3.7.3 (default, May 11 2019, 00:38:04) [GCC 9.1.1 20190503 (Red Hat 9.1.1-1)]
- `uname -a`: Linux localhost 5.1.9-300.fc30.x86_64 #1 SMP Tue Jun 11 16:17:54 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux


##### STEPS TO REPRODUCE

<!--- Paste example playbooks or commands between quotes below -->
```bash
mkdir -p /tmp/src/a/b/ /tmp/dest/a/b/
touch /tmp/src/a/b/newfile
ansible localhost -m copy -a "src=/tmp/src/ dest=/tmp/dest/ remote_src=yes"
```

<!--- HINT: You can paste gist.github.com links for larger files -->

##### EXPECTED RESULTS
<!--- Describe what you expected to happen when running the steps above -->
`/tmp/src/a/b/newfile` copied to `/tmp/dest/a/b/newfile`, task marked as changed.

##### ACTUAL RESULTS
`/tmp/dest/a/b/newfile` does not exist. Task marked as not changed.

<!--- Paste verbatim command output between quotes -->
```paste below
localhost | SUCCESS => {
    "changed": false,
    "checksum": null,
    "dest": "/tmp/dest/",
    "gid": 1269600003,
    "group": "akorsunsky",
    "md5sum": null,
    "mode": "0775",
    "owner": "akorsunsky",
    "size": 60,
    "src": "/tmp/src/",
    "state": "directory",
    "uid": 1269600003
}
```

owner: root
    group: root
    mode: '0644'
    backup: yes
- name: Copy a new "sudoers" file into place, after passing validation with visudo
  copy:
    src: /mine/sudoers
    dest: /etc/sudoers
    validate: /usr/sbin/visudo -csf %s
- name: Copy a "sudoers" file on the remote machine for editing
  copy:
    src: /etc/sudoers
    dest: /etc/sudoers.edit
    remote_src: yes
    validate: /usr/sbin/visudo -csf %s
- name: Copy using inline content
  copy:
    content: '# This file was moved to /etc/other.conf'
    dest: /etc/mine.conf
- name: If follow=yes, /path/to/file will be overwritten by contents of foo.conf
  copy:
    src: /etc/foo.conf
    dest: /path/to/link  # link to /path/to/file
    follow: yes
- name: If follow=no, /path/to/link will become a file and be overwritten by contents of foo.conf
  copy:
    src: /etc/foo.conf
    dest: /path/to/link  # link to /path/to/file
    follow: no
'''