cxxll::bad_maybe_access: New class
cxxll::maybe: New class
cxxll::pg_query: Switch to cxxll::maybe

No longer use pointers for nullable columns.
cxxll::pg_response: Add support for cxxll::maybe<T> results
cxxll::rpm_file_info: Use cxxll::maybe for the linkto member
cxxll::rpm_script: Use cxxll::maybe for the script member
cxxll::rpm_package_info: Use cxxll::maybe for the source_rpm
cxxll::rpm_evr, cxxll::rpm_package_info: Switch to maybe<int> for epoch

rpm_evr incorrectly used a std::string for the epoch, which worked due
to the std::basic_string::operator=(char) overload.
cxxll::rpm_package_info: Use rpm_evr

The evr member replaces the existing epoch, version, release members.
cxxll::elf_symboldb_definition: Use cxxll::maybe for vda_name
SQL schema: Drop the xsection column from symboldb.elf_definition

Instead, we encode the extended value directly in the section column.
cxxll::elf_symbol_reference: Use cxxll::maybe for vna_name
cxxll::elf_image: Use cxxll::maybe for interp() and build_id()
database::add_elf_image(): Use cxxll:maybe<std::string> for the soname
cxxll::dwarf::error: Use cxxll::maybe for data() and code()
cxxll::dwarf_handle: New class
cxxll::elf_image: Use cxxll::dwarf_handle
cxxll::dwarf::cu_range: New class

Based on cxxll::elf_image::dwarf_cu_range.
cxxll::elf_image::dwarf(): New member function
database: Use cxxll::dwarf::cu_range

(instead of cxxll::elf_image::dwarf_cu_range)