Further improve the scalability of fs_open() and related functions
in multi-threaded servers.  Only the parts that actually access the 
global_pool need to be serialized using the common_pool_lock.

Thus, we pass the common_pool_lock along with the common_pool in all
FS vtable functions and serialize the access FS-internally.

This patch is part of a series that improved 'svn info' scalability
in a threaded svnserve from about 2x (i.e. 2 cores) to over 5x.

* subversion/libsvn_fs/fs-loader.h
  (fs_library_vtable_t): add common_pool_lock to all functions that
                         use the common_pool

* subversion/libsvn_fs/fs-loader.c
  (svn_fs_create,
   svn_fs_open,
   svn_fs_upgrade2,
   svn_fs_verify,
   svn_fs_pack,
   svn_fs_recover,
   svn_fs_create_berkeley,
   svn_fs_open_berkeley): remove global sync here and pass the mutex
                          to the vtable functions

* subversion/libsvn_fs_base/fs.c
  (base_create,
   base_open,
   base_open_for_recovery,
   base_upgrade,
   base_verify,
   base_bdb_pack): update; but no sync required since no-one actually
                   uses the common_pool

* subversion/libsvn_fs_fs/fs.c
  (fs_create,
   fs_open): update; serialize access to common_pool by fs_serialized_init
  (fs_open_for_recovery): update
  (fs_upgrade,
   fs_verify, 
   fs_pack): update; simplify by calling fs_open

* subversion/libsvn_fs_x/fs.c
  (x_create,
   x_open): update; serialize access to common_pool by fs_serialized_init
  (x_open_for_recovery): update
  (x_upgrade,
   x_verify, 
   x_pack): update; simplify by calling fs_open

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