mkpatch: more special cases

Don't copy files if the source is in a copied path.
Detect binary files in patches.
mkpatch: prevent perl warnings if no subdir of a copied path is found
(probably due to use of non-standard branch names)
mkpatch: Fix how symbolic links which are changed to become normal files are handled

Previous method no longer works with svn 1.8 (was OK with svn 1.6).
mkpatch: Prevent copying from a file which has been replaced