Mostly resolve issue #4023 by trying to use the keep-local support of the
delete if all the targets of a 'svn rm' are status missing during the
status walk.

Note 1: This also applies to deletes from the merge code.
Note 2: This requires the r1434054 regression fix to the status walker.

* subversion/libsvn_client/client.h
  (svn_client__wc_delete): Rename argument and update layout.
  (svn_client__wc_delete_many): Fix typo.

* subversion/libsvn_client/delete.c
  (can_delete_baton_t): New struct.
  (find_undeletables): On status missing determine if it applies to the
    target of the operation. Assume that modified properties are folded
    in the node status.
  (can_delete_node): Add optional output argument. Use baton to set it.

  (svn_client__wc_delete): When the target is missing, don't delete the
    on-disk file.
  (svn_client__wc_delete_many): When all targets are missing, don't delete
    the on-disk files.

* subversion/tests/cmdline/basic_tests.py
  (rm_missing_with_case_clashing_ondisk_item): Remove XFail marker. Verify
    which file is deleted to verify the truename argument parser separately.


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