copy: handle rename internally
- add rename parameter
- don't collect copied list
- report "moving" rather than "copying"
- remove renamed files
- don't return copied list
- simplify callers
copy: simplify inner copy
- save dirstate lookup and exists check
- do all fs work inside a single dryrun clause
- move unlinking into inner copy section
- move target dir creation
- eliminate undelete mess
- fix a bug on mv a -> b -> a after merge
copy: refactor okaytocopy into walkpat
- rename core copy function to copyfile
- move origsrc details into copyfile
- turn okaytocopy loop into walkpat
copy: fix copying back with -A (
issue836)