Fix (hopefully for the last time) issue #4355 'svn_client_log5 broken with
multiple revisions which span a rename' and refactor the aforementioned
API, which was a bit of an unwieldy beast.

* subversion/include/private/svn_client_private.h

  (svn_client__resolve_rev_and_url): "New", but actually just the old
   libsvn_client/ra.c:resolve_rev_and_url().

* subversion/libsvn_client/log.c

  (assert.h): New include.

  (resolve_log_targets,
   find_youngest_and_oldest_revs,
   resolve_wc_opt_revs,
   resolve_wc_head_revs,
   resolve_wc_date_revs,
   rev_range_t,
   convert_opt_rev_array_to_rev_range_array,
   compare_rev_to_segment,
   run_ra_get_log): New.

  (svn_client_log5): Refactor this into the new helpers above.  Beyond the
   simple refactoring, this function now uses
   svn_client__repos_location_segments() to get the history spanning the
   requested log revisions and then uses this history to handle issue #4355.
   Credit cmpilato and rhhijben with this idea, see
   http://svn.haxx.se/dev/archive-2013-04/0474.shtml

* subversion/libsvn_client/ra.c

  (resolve_rev_and_url): Convert from static to svn_client private function,
   renaming from this to...

  (svn_client__resolve_rev_and_url): ...this.

* subversion/tests/cmdline/authz_tests.py

  (authz_log_and_tracing_test): Tweak expected error to account for new
   svn_client_log5 implementation.

* subversion/tests/cmdline/log_tests.py

  (log_multiple_revs_spanning_rename): Remove XFail decorator.  Tweak
   comments re failure status.  Add a required 'svn update' for testing
   log with WC target.


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