From Patricia: implementation of replicavol tag

(cherry picked from commit 05fab7b372cbfb32aa2edf118ea7f72c6005c985)
Avoid CMake generator expressions on macro defines for rootcling
Disable diags of dupe default args (func, templt) temporarily.
Running tutorials from an installation
use proper 'root' directory instead of root_[version].[platform].[compiler].[config] in tar files
No need for extra_include of iostream anymore.
Do not expose umbrella to FileManager. Fixed fwd decl callback.

Instead of #including the ubmrella header we now declare its content.
This hides the umbrella header in the include chain, allowing the forward
declarator of cling to detect that the include for TObject is TObject.h
and not the umbrella header. This fixes the "healing" for the forward
declarations when seeing the defining header being included.
Do not expose Xrd internals (type deletion). Should help LHCb.
Do not calculate the offset for nothing! (ROOT-6641)
The intended lock for the interpreter and gROOT is gInterpreterMutex.

gInterpreterMutex is aliases to gROOTMutex.  gGlobalMutex is a lower level lock.
Disable locking in PyROOT::TMethodHolder::Execute.

In v5 code execution on interpreted function and type database manipulation
are intertwined, so technical once a thread starts the execution of code
via CINT, no other threads can access the database (and since we also had
to alias the CINT and main ROOT mutex, no other threads can execute protected
ROOT operation like some deletions).

In v5, short of significant modifications inside CINT, we can not resolve
completely this problem and we must choose between the risk of dead lock
and the risk inherent with the 'unprotected' calls to CINT from PyROOT.
Since the earlier has a 100% probability and the later has a bit less chance
of happening, we disable the lock in PyROOT.

In v6, the database updates and the code execution is well separated and
we will be able to release the database lock before code execution and the
lock will be managed internally by core/meta. So in v6, the lock will also
be unnecessary.
Avoid deleting ROOT resources after gROOT has been deleted
remove unneeded <TAB>'s.
fix for preprocessor test.
Fix for ROOT-6637: NO_SELF_AUTOSELECT functionality is in root6

but implemented using traits.
If a template is present in the selection namespace and it inherits
from the class SelectNoInstance none of its instantiations will be
selected. On the other hand all of the instantiations selected with
other mechanisms will inherit the properties specified in the template,
for example transient data members or template arguments to keep.
Coding conventions
Correct comment
Make sure that in ShortType (when requested) the full name of the sub-element are also 'ResolveTypedef'ed
remove debugging leftover
Fix normalization of args of STL collections types.

Even if we do not (re)add STL collection default template parameters,
we must add them to the template argument themselves.
For example vector<myClass<A> > -> vector<MyClass<A,B> >.