Expand the support for GDB to pretty-print Subversion data structures.
Expand the support for GDB to pretty-print Subversion data structures.

Building on Hyrum's work, this enables GDB to automatically print a
human-readable representation of a few more data structures.  The most
significant change here is the introduction of matching on the type name as
it appears at the point of use, such as 'svn_mergeinfo_catalog_t'.
Previously we could only match on the structure tag name after stripping
away typedefs, so a 'svn_mergeinfo_catalog_t' (defined as 'apr_hash_t *'
could only have been printed as an 'apr_hash_t'.  Now, however, we will
print just the keys of a plain apr_hash_t, but both the keys and the values
(which are nested hashes) of svn_mergeinfo_catalog_t.

* tools/dev/gdb-py/svndbg/printers.py
  (TypedefRegexCollectionPrettyPrinter, InferiorFunction, children_as_map):
    New classes and function for general pretty-printing.
  (children_of_apr_hash, AprHashPrinter, PtrAprHashPrinter, AprArrayPrinter,
   PtrAprArrayPrinter): New classes and functions for pretty-printing APR
    types.
  (SvnMergeinfoCatalogPrinter): New class for pretty-printing a Subversion
    type.
  (build_libsvn_printer, register_libsvn_printers): Initialize and register
    the new printers. Add some commentary.

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