Implement PreservePaths option
unar does not have a dedicated switch to signal whether to preserve the paths while
extracting. Even if it had it, we could not use it since we cannot run unar in interactive mode
(i.e. when files already exist we cannot use its overwrite prompt).
Since we always extract to a temporary directory, we can workaround this
limitation by moving the files by hand. We just need to make sure to remove all
the directories from the filenames.
Since we introduce a dedicated function, we can use it when preserving paths as
well, instead of relying on CliInterface::moveToFinalDest (which is meant for drag-and-drop extractions).
This new function also paves the way for task T1686.