Fix behavior of cp -r when specifying non-existing destination
cp -r a b
should copy a to b if b does not exist, and should copy a to b/a if b does exist, and is a directory
cp -r a b
should copy a to b if b does not exist, and should copy a to b/a if b does exist, and is a directory