Removed threading model and implemented multiprocessing model instead.
Implemented better directory traversal so behaviour is identical to
rsync.
Added timestamp checking on source and destination files to ensure
updating works as intended.  Notes: Folders are not updated when in
update mode even when --times is specified.  If --times is exclusively
used without --update, then timestamps are updated on the destination if
they don't match the source, otherwise only files are updated.