Remove unused variable
Allocate Expr on a custom address to be able to release memory.

We now use operator new with placement to memory explicit
allocated in the routine (rather than the ASTContext) so
that we can release this memory at the end of the function.
The memory is allocated via a vector of object large enough
to hold the OpaqueExprRef.
Add support for lookup function from QualType(s).

Add new overload for findFunctionProto and matchFunctionProto which rather than
taking the list of argument types as a StringRef, take it as a
const llvm::SmallVector<clang::QualType, 4>.  This avoids the (permanent)
allocations inside clang due to the Parsing of types.
Add support for lookup function from QualType(s) to TClingCallFunc and TClingClassInfo
Add support for lookup function from QualType(s) via TypeInfo_t to TInterpreter
Add constructor of TMethodCall directly from CallFunc_t
Use function lookup from TypeInfo_t in TFormula
Merge in the 'Type' based function lookup.