Prevent conflicts when copying DLLs to binary output directories.

Every target was executing command to copy all its dependencies.  If they were running in parallel, these commands could conflict and cause the build to fail.  This change makes sure the dependencies are only copied once for each binary output directory.