Our svn_config_t struct contains tempoary string buffers that will be
modified even in r/o access mode.  Thus, it is inherently no thead-safe.

Introduce a private API function that will create shallow copies,
i.e. share the expensive config tree but use separate temp buffers.

* subversion/include/private/svn_subr_private.h
  (svn_config__shallow_copy): declare new private API function

* subversion/libsvn_subr/config_file.c
  (svn_config__shallow_copy): implement

* subversion/libsvn_repos/config_pool.c
  (return_config_ref): return shallow copies to ensure the config
                       can be used safely from multiple threads

* subversion/tests/libsvn_repos/repos-test.c
  (test_config_pool): since the config pool always returns a new root
                      struct we need to check whether the actual
                      config tree is the same

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