Add list of forward declarations in a payload in the dictionary

All of these files must be committed together as the changes are trasversal.
Executive summary of the changes:
o Rootcling, TMetaUtils, TModuleGenerator
  - Factorise the routines to obtain fwd decl strings from decls in
TMetaUtils within the namespace ROOT::TMetaUtils::AST2SourceTools
  - Allow rootcling to build a string containing all the fwd declarations
of selected classes (templates), typedefs (they are just anticipated) and
functions. This step is performed only in the BUILD STAGE 1 (i.e. at the
moment not for Core, RIO and Cling)
  - Allow TModuleGenerator to include the aforementioned string in the
code of the autogenerated dictionary

o TCling, TInterpreter, TROOT
  - Change of the RegisterModule interface to accomodate the presence
of the string containing the fwd declarations
  - Implement a RecursiveASTVisitor to mark all classes present in the
transaction resulting from the compilation with an externalLexicalStorage

o TClingCallbacks
  - For the "TagDecl callback" trigger autoparsing rathar then autoloading.

This commit is not the end of the full story even if an integration at this
point makes sense.
These features are still missing:
o Add the default argument of functions
o Treat template functions