Fix leak in ~Dir()
Add RunHelpers::run that takes 3 arguments
Add AbstractDirSyncEngine
Add SyncDirEngineWrapper
Add SyncDirEngine.