CopyTo copies source to dest
If source is a file and dest is a file, performs copy file
If source is a dir and dest is a dir, performs copy dir
If source is a file and dest is a dir, copies source to the dest dir with the same name
If source is a dir and dest is a file, returns error