We are currently implementing support in LLDB that reconstructs the STL templates from
the target program in the expression evaluator. This reconstruction happens during the
import process from our debug info AST into the expression evaluation AST, which means
we need a way to intercept the ASTImporter import process in some controlled fashion.
This patch adds a shim to the ASTImporter that allows us to intercept any Import calls an
ASTImporter may make (either externally or while importing internally). We then provide
a shim in LLDB that does do our template reconstruction.
The shim is on purpose not reusing some ASTImporter functionalities like the map of already
imported decls because we want to keep it flexible. If a Shim wants to use this functionality
it needs to update/check the map itself.
 The reason for this is that we can't reliable import templates with the ASTImporter, so
actually reconstructing the template in the debug info AST and then importing it doesn't work.
It would also be much slower.