Protect global list of functions from concurrent access

The list returned from TROOT::GetListOfFunctions needs to be protected
from concurrent access to allow use of TFormulas on different
threads.

Conflicts:
	hist/hist/src/TF1.cxx
	hist/hist/src/TFormula.cxx
Protect global list of TFormulaPrimitives

Conflicts:
	hist/hist/src/TFormulaPrimitive.cxx
Added missing locks when calling gCint

Added calls to the gCINTMutex lock when calling gCint methods. These
are needed to avoid problems while concurrently using TFormula.

Conflicts:
	core/meta/src/TDataType.cxx
Make TClass::fIsAMethod setting thread safe

Caching and initialization of TClass::fIsAMethod have been changed
to make them thread safe and for calls to the TMethodCall can happen
concurrently.
Call TROOT::GetGlobalFunction instead of GetListOfGlobalFunctions

Since the global function list needs to be locked to be thread safe,
the simplest way of avoiding having to take the locks outside of
TROOT is to call GetGlobalFunction instead.

Conflicts:
	core/base/src/TQObject.cxx
Lock access to gROOT->fGlobalFunctions

The list of global functions must be protected from simultaneous
writes/reads.

Conflicts:
	core/base/src/TROOT.cxx
	core/meta/src/TCint.cxx
white spaces

Conflicts:
	core/meta/src/TCint.cxx
	hist/hist/src/TF1.cxx
Use #if __cplusplus >= 201103L to mark C++11 code
Thread safety fixes for TCling

    -use thread_local for statics which are being used as return values
    -use C++11 initializers to allow static containers to be const
gCINTMutex -> gInterpreterMutex
Use correct type
Improve const correctness
Remove #if not C++11