Use actual ELF closure computation for --show-soname-conflicts
update_elf_closure(): Restrict to ET_DYN objects
database::print_elf_soname_conflicts(): Reordering only
database::print_elf_soname_conflicts(): Cache file IDs
update_elf_closure(): Determinism for file conflicts

When file paths for a soname are the same, the priorities are
identical, and we use the package name as a tie breaker.
update_elf_closure::lookup(): Reindent
update_elf_closure(): Suppress some common soname conflicts
update_elf_closure(): Apply delta to symboldb.elf_closure

Previously, we were rebuilding the relevant part of the table from
scratch, causing a lot of index updates and WAL traffic.
Rename files database_elf_closure.* to update_elf_closure.*
TODO: Fix typo
WIP
database::exec_sql(): Add
Add class file_handle
Add --run-example option and test script
Move test cases into the test directory
CMake: Introduce CXXLL
Move the cxxll source files to separate directories
Move symboldb files to separate directories
Move main program source files to the src directory
Introduce namespace cxxll