Fix func/ptr cast warning; work around MSVC2012 lack of C++11.
Work-around transaction unload not informing MetaSema.

When a file is unloaded its entry should be removed from MetaSema::m_WaterMarks.
At the moment the corresponding callback is not implemented.

Instead, we also record the relation <Transaction*,Entry*>, so that upon
MetaSema requesting an unload, we can clean-out the corresponding data
from m_WaterMarks.

In addition, to catch the case where the target transaction (unloadPoint)
is not longer present we issue an error and do not unload anything.
Make sure TObjString::Class() before tear down
Add missing typedefs for autoloading
Implement typedef selection pragma

yes: it was not implemented.
The only effect it had, and nobody noticed, is that autoloading
would not have worked for those typedefs.
The effect is very pronounced, i.e. crash, in presence of header
parsing on demand.
Save TypedefDecls in the scanner, not only typedef/aliases names

this allows to associate to a typedef, which is an autoload entry,
headers. This is crucial in presence of header parsing on demand.
Don't treat typedef selections when creating pch

formalise the type of scan defining three types thereof:
 - Normal
 - Two passes (for dict selection)
 - One PCM
Optimise pch creation runtime
Restore R5 typedef behaviour in presence of LinkDef file

this is necessary since in R5 the typedef pragma selected class
is present to allow cint to know about these typedefs.
This is not necessary for Root6.
On the other hand, we need autoload entries for these typedefs.
The solution is to keep them in the list of selected typedefs but
not to "drill a hole" through them and select the class they point
to.
This behaviour is present only for genreflex + selection xml, for
which the typedefs are "followed up": the pointed class is selected
via the typedef. Again, a behaviour of ROOT5 preserved in ROOT6.
Remove validation of name for TListOf* upon loading the list for speedup.
From Pere: The logic in net/net/CMakelists.txt in master is wrong (it is correct in the patches). It should be  'OR' and not 'AND'
Added TMCtls.h with thread local storage typedefs for platforms which support TLS
(according to Geant4 tls.hh and G4Threading.hh)
Merge branch 'master' of https://root.cern.ch/git/root
Refactor the code. Improve underlying type finding routine

making it recursive.
Refactor the routines used for header parsing on demand

also read in the constructor the env variable HEADER_PARSING_ON_DEMAND
instead of reading it in several places.
Add the routine AutoParse, which is called internally by AutoLoad.