add --delay-updates option

This code adds --delay-updates to the sync command.  The source list is split into two parts: files that are new, and files that are being updated.  With --delay-updates, the new files are transferred first, and then the updated files are transferred second.

This will keep a yum or deb repo consistent for a longer period of time, only changing out the updated files (metadata files) at the last possible instance.