Make svn_fs_initialize() thread-safe.
Make svn_fs_initialize() thread-safe.

Although svn_fs_initialize is supposed to be called in a single-threaded
context, multi-threaded applications might not be aware of the fact that
they must call this function explicitly before any other svn_fs_* API.
So, lift the single-threaded call requirement here as a curtasy to all
MT API users.

* subversion/libsvn_fs/fs-loader.c
  (common_pool_initialized): A new flag governing module initialization.
  (synchronized_initialize): New function containing the body of ...
  (svn_fs_initialize): ... this one.  Make sure we initialize the module
                       at most once.
  (get_library_vtable_direct,
   get_library_vtable): Don't make module initialization dependent on
                        common_pool as that is not fully synchronized.
                        Let the init. function take care of it instead.

git-svn-id: f8a4e5e023278da1e04e203c7fe051e3c4285d88@1546409 13f79535-47bb-0310-9956-ffa450edef68

YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion