Update the ra_serf internal propfind api to allow delivering properties to a
callback function instead of via a triple nested hashtable. Use this api to
avoid caching properties in the update editor.

* subversion/libsvn_ra_serf/property.c
  (propfind_context_t): Store callback instead of hashtable.
  (copy_into_ret_props): Call callback instead of storing in hashtable.
  (propfind_closed): Avoid unneeded work.

  (svn_ra_serf__deliver_props): Rename to ...
  (svn_ra_serf__deliver_props2): ... this. Store callback, etc.

  (deliver_prop_baton_t): New struct.
  (deliver_prop): New function.
  (svn_ra_serf__deliver_props): New function around
    svn_ra_serf__deliver_props2.

* subversion/libsvn_ra_serf/ra_serf.h
  (svn_ra_serf__prop_func): New typedef.
  (svn_ra_serf__deliver_props2): New function.

* subversion/libsvn_ra_serf/update.c
  (dir_baton_t): Remove hash.
  (file_baton_t): Remove hash. Add boolean.
  (set_file_props,
   set_dir_props): Remove old implementations here.
  (maybe_close_dir): Remove retrieved hash walking.
  (check_lock): Remove function. fold code in set_file_props and
    close_file.
  (close_file): Move lock check here. Cleanup hash walking.
  (set_file_props): New function.
  (fetch_for_file): Update caller.
  (set_dir_prop): New function.
  (fetch_for_dir): Update caller.


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