On the fsfs-format7 branch: change the way representations are being
accessed and txdelta windows being cached.  The goal is to be able to
feed most data from caches and to access the physical files only upon
demand.

We will no longer address windows via string-encoded key but through
packing-independent window keys.  As a minor downside, we won't store
windows within transactions anymore.

Also, switch the rep_state_t structure(s) used to a read a representation's
delta chain from absolute offsets and immediately opened file handles to
revision + item index and lazily opened files.  In case that all windows
along the line can be found in cache, no offsets will be determined and
no files need to be opened.

* subversion/libsvn_fs_fs/fs.h
  (window_cache_key_t): declare new window key type
  (fs_fs_data_t): update docstrings concerning cache keys

* subversion/libsvn_fs_fs/caching.c
  (svn_fs_fs__initialize_caches): window caches now use fixed-size keys

* subversion/libsvn_fs_fs/cached_data.h
  (svn_fs_fs__check_rep): add support for inter-call hints

* subversion/libsvn_fs_fs/fs_fs.c
  (verify_walker_baton_t): only a single hint value is required now
  (verify_walker,
   svn_fs_fs__verify): adapt to single-hint svn_fs_fs__check_rep

* subversion/libsvn_fs_fs/transaction.c
  (get_shared_rep): adapt to API change

* subversion/libsvn_fs_fs/cached_data.c
  (shared_file_t): new data structure for lazily opened file objects
  (rep_state_t): make absolute file objects optional, i.e. lazily evaluated
  (create_rep_state_body): only need to new shared files struct as hint;
   adapt to state struct change; delay file access
  (create_rep_state): update wrapper
  (svn_fs_fs__check_rep): add hint support
  (svn_fs_fs__rep_chain_length): adapt
  (get_window_key): rewrite to match the new window addressing scheme
  (get_cached_window): update; allow for directly addressing window numbers
  (set_cached_window,
   get_cached_combined_window,
   set_cached_combined_window,
   build_rep_list): update
  (auto_open_shared_file,
   auto_set_start_offset,
   auto_read_diff_version): new utilities that initialize on-demand info
  (read_delta_window,
   read_plain_window,
   get_contents): update to relative addressing and lazy inits
  (get_combined_window): can't cache combined windows in txns and
   explicitly iterate window numbers
  (delta_read_next_window,
   svn_fs_fs__get_file_delta_stream): update

git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/fsfs-format7@1442874 13f79535-47bb-0310-9956-ffa450edef68