Move the diff anchor handling into the existing path adjustment code, instead
of duplicating this code in every callback handler.

(Before 1.7 this code was in the diff walker, so this moves it just a bit
 further to the output)

The problem with this adjustment is that it is very hard to undo, while the
git diff code doesn't want this adjustment.

This patch moves many path changes, but the output of the diff
code should be identical before and after this patch.
(I will change the git diff behavior in a followup patch)

* subversion/libsvn_client/diff.c
  (adjust_relative_to_repos_root):  Add anchor handling. Use dual pools.
   adjust_paths_for_diff_labels): Add anchor handling. Use dual pools.
     Add "" path handling.

  (display_prop_diffs): Forward anchor handling to the adjust handling.
    Leave path variable as-is by introducing new diff_path. Make sure the
    path variable is also updated when not printing headers.

  (diff_props_changed): Forward anchor handling.

  (diff_dir_props_changed): Remove anchor handling.

  (diff_content_changed): Add scratch_pool argument and use that instead of
    local subpool. Use diff_path variable instead of assuming a modified path
    variable. Pass anchor to path adjustment helpers.

  (diff_file_changed,
   diff_file_added): Remove anchor adjustment.

  (diff_file_deleted): Only adjust path with anchor when printing deleted
    header.

  (diff_dir_added,
   diff_dir_deleted,
   diff_dir_opened,
   diff_dir_closed): Remove commented path adjustment.

* subversion/tests/cmdline/diff_tests.py
  (diff_git_with_props_on_dir): Extend test to also show a property
    change on a subdir.


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