Re-implementation of C++ Class Hierarchy Analysis.

This is a complete re-implementation of the c++ class hierarchy analysis to
allow support for classes defined in anonymous namespaces.

This also introduces a new pass called "soaap-insert-class-debug-info" which
s meant to be run on individual llvm IR files (i.e. pre-linking), and which
inserts debugging metadata for each virtual invocation storing a pointer to
the receiver's static class type's vtable.

NOTE: both -g and rtti need to be enabled for this to work.

So the workflow is:

1) Compile C++ files with -g and -frtti to LLVM IR
2) Run the -soaap-insert-class-debug-info pass on each individual LLVM IR file
3) Link IR files together
4) Run the -soaap analysis on the linked IR file

Having done (2), SOAAP (4) will be able to build a class hierarchy and map
virtual calls to all possible callees starting with the receiver object's
static class type.