Extract file works for directories

Extract file requests will now check the filesystem to see if that path
exists in the package.  If not, and the package can be extracted, it will
fallback to the previous behaviour of extracting a file with the given path
and returning that.
Fix moving folders locally

Bugs moving folders locally using os.rename or shutil.move, so changed to
always use move_rsync until properly fixed.