Remove the connection setup and repository opening code from the
serve() function such that we may later exit and re-enter it.

Also, we now open the repository in the memory pool passed to
serve() while all other connection_t info gets allocated in the
user socket's pool - with potentially longer lifetime.

* subversion/include/private/svn_ra_svn_private.h
  (svn_ra_svn__get_pool): Declare new private getter API.

* subversion/libsvn_ra_svn/marshal.c
  (svn_ra_svn__get_pool): Implement getter.

* subversion/svnserve/server.h
  (repository_t): Add all information that is static per repository.
                  Based on that info, we can close and re-open the
                  repository at any point in the future.

* subversion/svnserve/serve.c
  (reset_repos): New cleanup utility.
  (find_repos): Update signature and allocate the repository object
                in a separate pool of (potentially) shorter lifetime.
  (construct_server_baton): Baton construction code extracted from ...
  (serve): ... this.

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