In an attempt to finally resolve issue #3674 "Replace + propset of locked file
fails over DAV", fix the "If" header generation in libsvn_ra_serf and
consistently use that for the DELETE, MKCOL and COPY operations affecting
trees.

* subversion/libsvn_ra_serf/commit.c
  (delete_context_t): Make more consistent with other commit batons.
  (setup_if_header_recursive,
   setup_add_dir_common_headers): New function.
  (setup_copy_dir_headers): Call setup_add_dir_common_headers.
  (setup_delete_headers): Use setup_if_header_recursive to add all locks to
     the header instead of only those on the target itself.
  (create_delete_body): Remove unneeded function.
  (delete_entry): Update calller. Remove unneeded retry handling for missing
   locks.
  (add_directory): Hook creation header for 'MKCOL' to add 'If' when necessary.
  (svn_ra_serf__get_commit_editor): Store empty lock hash as no hash.
  (svn_ra_serf__change_rev_prop): Remove unused variable.

* subversion/tests/cmdline/lock_tests.py
  (replace_and_propset_locked_path): Remove XFail marker.


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