Previously, the diagnoser function returned an AST element that was faulty.
If the dataflow analysis wanted to warn about Stmts and CXXCtorInitializers, or any AST elements without a common base class, we had to choose which type to return.
Now, diagnosers receive and return a CFGElement and can thus warn about any type of C++ construct.
nit: just wanted to double check on the formatting: i'm used to seeing class put on a new line.