Parallel destinations

(This builds on top of my previous pull requests, specifically the hardlink handling request.  This also uses os.fork() and os.wait(), which don't exist on Windows.  If Windows compatibility is still necessary, that will need to be checked for and handled accordingly.)


    sync: add --add-destination, parallelize uploads to multiple destinations

    Only meaningful at present in the sync local->remote(s) case, this
    adds the --add-destination <foo> command line option.  For the last
    arg (the traditional destination), and each destination specified via
    --add-destination, fork and upload after the initial walk of the local
    file system has completed (and done all the disk I/O to calculate md5
    values for each file).

    This keeps us from pounding the file system doing (the same) disk I/O
    for each possible destination, and allows full use of our bandwidth to
    upload in parallel.