Make 'svn diff -r 123 MOVED-PATH' use the normal diff editor instead of custom
code that reimplemented an ignore-ancestry diff for files.

Also fix some ignore ancestry handling in libsvn_wc's diff editor to make the
results match what was expected by the test suite.

As long as the diff editor isn't updated to properly handle -r BASE as either
CHECKEDOUT(=op_depth 0) or PRISTINE(=working), this will be a similar hack
as before, but at least not multiple ones.

* subversion/libsvn_client/diff.c
  (diff_repos_repos_added_or_deleted_file): Provide what the repos-repos diff
    does.
  (diff_repos_wc_file_target): Remove function.
  (diff_repos_wc): Add support for reporting a switched file to the server and
    use that instead of diff_repos_wc_file_target().

* subversion/libsvn_wc/diff_editor.c
  (dir_baton): Allow access to parent baton. Add reference count.
  (file_baton): Add parent baton.
  (make_dir_baton,
   make_file_baton): Initialize reference to parent baton
  (maybe_done): New function.
  (close_directory): Call maybe_done.
  (close_file): Delay getting the add kind a bit to make it easy to implement
    proper ignore-ancestry support. Call maybe_done on parent baton.

* subversion/tests/cmdline/diff_tests.py
  (diff_head_of_moved_file): Expect specific output instead of any output.
  (diff_url_against_local_mods): Remove XFail.


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