In FSFS, make the dag node cache work for transactions.  A step towards O(n) FS performance for directories with many files.
In FSFS, make the dag node cache work for transactions.  A step
towards O(n) FS performance for directories with many files.

* libsvn_fs_fs/tree.c
  (fs_root_data_t): Remove the "only for revision roots" comment.
  (dag_node_cache_get): Allow transaction roots.  Check for
   cache_item->node being NULL, which means the entry has been
   invalidated.
  (dag_node_cache_set): Remove puzzling comment text which amounts to
   "callers should not call this unless they have some reason to do
   so."  Allow transaction roots.  Provide working code for reusing a
   cache item.
  (dag_node_cache_invalidate): New function, invalidates the cache
   entries for a path and its children.  (Might be nice to restructure
   the cache so that this operation doesn't require a full scan, some
   day.)
  (make_path_mutable): Update the cache with the new entry.
  (fs_make_dir, fs_make_file): Add the new entry to the cache.
  (fs_delete_file): Invalidate the path and its children in the cache.

jmckaskill/subversion,jmckaskill/subversion,jmckaskill/subversion,jmckaskill/subversion,jmckaskill/subversion,jmckaskill/subversion,jmckaskill/subversion,jmckaskill/subversion