An abstract file synchronization task. Scans a set of source files and
folders, and a destination folder, and performs actions on missing and
out-of-date files. Specifically, performs actions on the following:

Missing destination file.

Missing source file.

Out-of-date destination file.

Up-to-date destination file.

To Do:

Deal with case where dest file maps to a child of one of the source files, Deal with case where dest file already exists and is incorrect type (not file, not a folder), Use visitors, Add default excludes, Allow selector, mapper, filters, etc to be specified., Handle source/dest directories as well, Allow selector to be specified for choosing which dest files to sync