As it turns out, 'svnadmin verify' did not cover the changed paths lists
but that list effectively defines the contents of the dump file.  IOW,
those dump files may not load due to invalid paths even though verification
does not show a problem.

This patch extends the dump code in verification mode such that it will
verify all paths that it encounters.  Corrupted repositories may still
be dumped as the check is only applied in verification mode.

We still don't check whether a revision's change list actually represents
the changes made in that revision.

Provide a comprehensive test and update other tests affected by the change.

* subversion/libsvn_repos/dump.c
  (path_tracker_entry_t,
   path_tracker_t): new path tracker data structure
  (tracker__trim,
   tracker__add_entry): new path tracker internal utilities
  (tracker_create,
   tracker_lookup,
   tracker_path_copy,
   tracker_path_add,
   tracker_path_replace,
   tracker_path_delete): path tracker API
  (edit_baton): use that new data structure
  (fetch_kind_func): need to forward-declare that function now
  (node_must_exist,
   node_must_not_exist): new verification utilities using the path tracker
  (dump_node): verify that all paths are valid depending on the current
               action and only if the path tracker is available
  (get_dump_editor): make the path tracker available in "verify" mode only

* subversion/tests/cmdline/svnadmin_tests.py
  (set_changed_path_list): new utility function
  (verify_keep_going): update expected output
  (verify_invalid_path_changes): new test code
  (test_list): register new test

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