In FSFS, instead of locking the L1 DAG cache when handing out references
to its contents, copy the nodes into the result pool.  Because DAG nodes
are large objects (~1KB typ.), copy them only if they are not already in
the result pool.

This is the core patch for the memory growth issue caused by long-living
pools inadvertently holding locks on the cache.  The now unused locking
logic will be removed in later commits.

* subversion/libsvn_fs_fs/dag.h
  (svn_fs_fs__dag_copy_into_pool): New wrapper around svn_fs_fs__dag_dup
                                   that prevents unnecessary copies.

* subversion/libsvn_fs_fs/dag.c
  (svn_fs_fs__dag_copy_into_pool): Implement.

* subversion/libsvn_fs_fs/tree.c
  (dag_node_cache_get): Ignore the cache lock requests.  Cache locking
                        is no longer necessary.
  (make_parent_path,
   open_path): Ensure that all DAG nodes in the parent_path_t structure
               are allocated in the result pool.

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