Extract the interpreter from TCling.
Detect TCling construction from rootcling.
rootcling brings its own libCling, no need to dlopen it.
Rename ROOTBUILD to ROOT_STAGE1_BUILD; ROOT will specify -rootbuild for stage2.

rootcint_tmp will be used for libCore and libRIO; rootcint will generate all
subsequent dictionaries. ROOT will pass "-rootbuild" as argument to signal that
rootcling is invoked for building ROOT.
Add more rootcling interpreter flags.
Add extern "C" layer between TCling (rtti) and rootcling (no-rtti).
Also define resourcedir for TCling interpreter.
Rename vars from CINT to CLING. rootcling_tmp only used for libCore,RIO.

rootcling will write out ROOT files; that does not work for libCore and RIO
which instead use rootcling_tmp.
All other libraries use rootcling -rootbuild.
Rename ROOTCLINGTMP to ROOTCLINGSTAGE1; rootcling -rootbuild is ROOTCLINGSTAGE2.
Trigger TROOT::TROOT() and friends.
rootcling must not load the PCH.
Rename $(ROOTCLINGTMP) to $(ROOTCLINGSTAGE1); utils depends on system.
Do not read the file as archive if we replace it in a second anyway.
Disable plugins for rootcling; fix comment.
Write StreamerInfos into ROOT files (that are called "_dict.pcm").

This allows us to do I/O without including headers into cling - modulo the
TStreamerOffsets that's still to come.
Add note about the TStreamerOffsets creation.
Simplify copy&paste of G__std dict generation.
No InterpreterClassDef for rootcling.
Do not generate clang::Modules.
Write out dict/module registration code; skip clang::Modules right after.
Protect from missing CodeGen.