copyDirContent src dest recursively copies directory src onto dest.
First, a to-do list of copy actions is created. Then, the to-do list is carried out.
This avoids copying files we have just created again, which can happen
if src and dest are not disjoint.
(See issue #2705.)