Some refactoring.  Provide a generic container implementation that
allows for the implementation of thread-safe, reference counting
containers for objects like configurations, authz and repositories.

Update the configuration pool to use that new internal API.

* subversion/include/private/svn_object_pool.h
  (): new file
  (svn_object_pool__t,
   svn_object_pool__getter_t,
   svn_object_pool__setter_t): declare API data types
  (svn_object_pool__create,
   svn_object_pool__pool,
   svn_object_pool__mutex,
   svn_object_pool__count,
   svn_object_pool__lookup,
   svn_object_pool__insert): declare API functions

* subversion/libsvn_subr/object_pool.c
  (): new file
  (object_ref_t): internal data type
  (svn_object_pool__t): define API data type
  (destroy_object_pool,
   object_pool_cleanup,
   remove_unused_objects,
   object_ref_cleanup,
   add_object_ref,
   lookup,
   insert,
   default_getter,
   default_setter): various utility functions
  (svn_object_pool__create,
   svn_object_pool__pool,
   svn_object_pool__mutex,
   svn_object_pool__count,
   svn_object_pool__lookup,
   svn_object_pool__insert): implement API functions

* subversion/include/private/svn_repos_private.h
  (svn_repos__config_pool_create): add THREAD_SAFE flag
  (svn_repos__config_pool_get): add optional KEY return parameter

* subversion/libsvn_repos/config_pool.c
  (config_ref_t): rename to ...
  (config_object_t): ... this; remove bits already covered by object pool
  (in_repo_config_t): update commentary
  (svn_repos__config_pool_t): base upon an object pool
  (destroy_config_pool,
   config_pool_cleanup,
   config_ref_cleanup,
   config_by_checksum,
   remove_unused_configs): drop functionality now covered by object pool
  (return_config_ref,
   config_add): superseded by ...
  (getter,
   setter): ... these much simpler callbacks
  (checksum_as_key): new utility function
  (auto_parse,
   add_checksum,
   find_repos_config,
   config_by_url,
   svn_repos__config_pool_create,
   svn_repos__config_pool_get): update and simplify implementation

* subversion/tests/libsvn_repos/repos-test.c
  (test_config_pool): update API caller

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