In the test driver, note the occurrence of exceptions
Add string_source
Add quote(const std::string &)
Use the quote function in the os_exception implementation
Quote the strings in the COMPARE_STRING error message
Add expat_source
Suppress compiler warning about PGRES_SINGLE_TUPLE
Remove abuse of std::vector::front()

Use std::vector::data() instead.
Add memory_range_source
Base expat_minidom on expat_source
Additional tests for expat_minidom
In --show-source-packages, parse the XML incrementally

Currently, this is slower, but it it leads to a significant decrease
in memory usage (161 MB vs 879 MB).
expat_source: add member functions which avoid copies
expat_minidom::parse(): use copy-avoiding expat_source accessors

This recovers the speed loss due to incremental parsing.
Use incremental parsing for --download-repo etc.
expat_source: increase feeding buffer size

This increases performance with inline decompression.
Add gunzip_source and zlib_inflate_exception
Use inline decompression for --show-source-packages
Use inline decompression for --download-repo etc.
zlib_inflate_exception: guard against null pointer message string