Made TROOT ReadingObject methods thread safe

Made use of a thread_local to hold the ReadingObject status since
the status is only meant to apply to a call chain.
Made global counters in TFile atomic

To properly handle cases where different TFiles are being used
on different threads, the various global counters in TFile
were converted to std::atomic<>.
Used std::atomic to protect TStreamerInfo counters

fLiveCount and fgCount are now atomic since they can be
read/modified on different threads without a mutex.
Use std::atomic to protect access to TClass state

Changed fVersionUsed and fgClassCount of TClass to be std::atomic
since both could be read/modified from different threads without
a mutex.
Also put back fgCallingNew as a class member to minimize code
changes with non-thread safe version.