This change rewrites significant part of llvm-symbolizer code,
as it has grown convoluted after a number of recent changes.
Most significantly, it simplifies ownership strategy: parsed binaries
and objects are now wrapped in OwningBinary<> or std::unique_ptr and
are always owned by LLVMSymbolizer object (so there's no need for explicit
destructor), and LLVMSymbolizer::loadObject / loadBinary methods
encapsulate calls to methods of LLVMObject and return raw pointers,
to objects owned by LLVMSymbolizer.
I suggest to move the .gnu_debuglink part into a helper function so that findDbgObj is more readable.