Start teaching 'svn patch' about git-style 'rename' information.

'svn patch' now moves a patch target which has the following
extra information as generated by 'git diff --find-renames':

  rename from OLD_PATH
  rename to NEW_PATH

Note that 'svn diff --git' does not create such diff headers yet.

Rename information was already parsed by the diff parser but the
patch code didn't make use of it so far.

* subversion/libsvn_client/patch.c
  (patch_target_t): Add 'move_target_abspath'.
  (choose_target_filename): Return the old name in case of rename.
  (init_patch_target): If the diff contains a move operation, sanitize
   and store the move destination path in target->move_target_abspath.
  (send_patch_notification): Send 'A' and 'D' notifications for moves.
  (install_patched_target): In case the patch target is moved, write the
   patched contents directly to the move destination path, perform
   a meta-data-only move from the target's old location, and delete the
   old location from disk. This part of the implementation needs further
   work, e.g. we don't check for unversioned obstructions at the move
   destination yet!
  (apply_patches): Run install_patched_target() in case of a move.

* subversion/tests/cmdline/patch_tests.py
  (patch_git_rename, test_list): New test.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1594636 13f79535-47bb-0310-9956-ffa450edef68