Right now the ASTImporter assumes for most Expr nodes that they are always equal
which leads to non-compatible declarations ending up being merged. This patch
adds the basic framework for comparing Stmts (and with that also Exprs) and implements
the custom checks for a few Stmt subclasses. I'll implement the remaining subclasses
in follow up patches (mostly because there are a lot of subclasses and some of them
require further changes like having GNU language in the testing framework)
The motivation for this is that in LLDB we try to import libc++ source code and some
of the types we are importing there contain expressions (e.g. because they use enable_if<expr>),
so those declarations are currently merged even if they are completely different (e.g.
enable_if<value> ... and enable_if<!value> ... are currently considered equal which is
clearly not true).
I like the idea to encapsulate all this into StmtComparer, nice!