Add another callback for ra_svn tunnels that determines whether the
default tunnel implementation should be used, based on the tunnel name.

* subversion/include/svn_ra.h (svn_ra_check_tunnel_func_t): New callback type.
  (svn_ra_callbacks2_t): Add check_tunnel_func callback. Update docstrings
   of open_tunnel_func and close_tunnel_func.
* subversion/include/svn_client.h (svn_client_ctx_t): Add check_tunnel_func
   callback. Update docstrings of open_tunnel_func and close_tunnel_func.
* subversion/libsvn_client/ra.c (svn_client__open_ra_session_internal):
   Pass check_tunnel_func to the RA session callbacks.
* subversion/libsvn_ra_svn/client.c (open_session): Change predicate
   for call to make_tunnel, based on tunnel_argv being non-null.
  (ra_svn_open): Call the check-tunnel callback to determine if
   a given tunnel type should be handled by the callbacks or by
   the default implementation.

* subversion/tests/libsvn_ra/ra-test.c
  (check_tunnel, last_tunnel_check): New.
  (check_tunnel_callback_test): New test.
  (tunel_callback_test): Verify last_tunnel_check.
  (test_funcs): Add check_tunnel_callback_test.


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