CreateFork recovers when encountering existing empty directory target
Certain repository creation patterns can sometimes leave an empty directory behind after a failure. When reattempting CreateFork after one of these failures, CreateFork will not proceed if the target directory exists. This change modifies that behavior so that CreateFork only stops if there is a non-empty directory. Empty directories will be removed and the process will move forward.
Closes #3296 (closed)