Fix CopyFs bug that resulted in a flattened destination directory. Added tests catch this bug, and ensure the data is in fact copied to the destination directory.
This adds a test case for the standalone CopyFs function, and an easy to use test case infra.