Make TMVA thread-safe with respect to use of Reader

It is now possible to create independent TMVA::Readers and use
them simultaneously on different threads.
Training of MVAs is still only safe single-threaded. In addition,
it is not safe to use multiple instances of MethodCFMlpANN either
single or multi-threaded because of a global 'this' pointer.

Conflicts:
	tmva/src/DecisionTreeNode.cxx
Lock calls to Reflex::Class::PathToBase

Instances of Reflex::Class are shared across threads. Calls to
Class::PathToBase caches values in a std::map for later use. Since
C;ass::PathToBase can be called from different threads, the map
needs to be locked. For simplicity, all Reflex::Class instances share
the same lock.
Include patches from roofit.spec

- roofit-5.30.00-remove-tmath-infinity.patch
- roofit-5.24-00-RooFactoryWSTool-include.patch
Have to use recusive_mutex when locking Reflex::Class::PathToBase
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.
Protect global list of TFormulaPrimitives
Merge pull request #18 from ktf/mt-fixes

Multithreading fixes forward ported from those on top of v5-34-18