Optimize the latency costs on svn_ra_get_dir() for ra_serf a bit by pipelining
the required requests and avoiding unneeded work and copying. This possively
affects things like 'svn ls --include-externals' and some cases of multi-url
diff, including those that drive merge.

* subversion/libsvn_ra_serf/ra_serf.h
  (svn_ra_serf__check_path,
   svn_ra_serf__stat,
   svn_ra_serf__get_dir): Add prototypes.

* subversion/libsvn_ra_serf/serf.c
  (fetch_path_props,
   svn_ra_serf__check_path,
   dirent_walker_baton_t,
   dirent_walker,
   path_dirent_visitor_t,
   path_dirent_walker,
   get_dirent_props,
   svn_ra_serf__stat,
   resource_is_directory,
   svn_ra_serf__get_dir): Move all this to a new stat.c

* subversion/libsvn_ra_serf/stat.c
  New file, copied from serf.c
  (svn_ra_serf__check_path): Remove static.
  (path_dirent_visitor_t): Remove as unused.
  (path_dirent_walker): Remove as unused.
  (get_dir_baton_t): New struct.
  (get_dir_dirents_cb): New function.
  (get_dir_props_cb): New function.
  (svn_ra_serf__get_dir): Reimplement using two property requests that deliver
    to the callback functions. Introduce scratch pool.


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