Finalize the FSFS f7 format by adding checksums to the P2L and L2P index
data itself.  Now, all of the rev / pack files can be verified.

We simply wrap the streams through which we write the two indexes with
MD5 generator wrappers and put the results into the footer next to the
index offsets.  Updating generators, parsers and writers is pretty
straight forward.

The checksum verification code will be added in the next patch.

* subversion/libsvn_fs_fs/index.h
  (svn_fs_fs__l2p_index_append,
   svn_fs_fs__p2l_index_append): Return the index content checksum as well.

* subversion/libsvn_fs_fs/index.c
  (svn_fs_fs__l2p_index_append,
   svn_fs_fs__p2l_index_append): Use simple stream wrappers to automatically
                                 calculate the MD5 checksums.

* subversion/libsvn_fs_fs/transaction.c
  (svn_fs_fs__add_index_data): Receive the index checksums and pass
                               them on to the serialization code.

* subversion/libsvn_fs_fs/low_level.h
  (svn_fs_fs__parse_footer): Update signature to return the index
                             checksums as well.
  (svn_fs_fs__unparse_footer): Update signature to accept the index
                               checksums, too.

* subversion/libsvn_fs_fs/low_level.c
  (svn_fs_fs__parse_footer): Update the footer reader.
  (svn_fs_fs__unparse_footer): Update the footer writer.

* subversion/libsvn_fs_fs/rev_file.h
  (svn_fs_fs__revision_file_t): Add members for the index checksums.

* subversion/libsvn_fs_fs/rev_file.c
  (init_revision_file): Update struct initialization code.
  (svn_fs_fs__auto_read_footer): Receive the checksums as well.

* subversion/libsvn_fs_fs/structure
  (Revision file format): Update the description of the file footer.

* subversion/tests/cmdline/svnadmin_tests.py
  (set_changed_path_list): Update to preserve the two checksums
                           in the footer as well.


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