Prototype changes for multithreading
Protect statics:
In general, all statics should be either const or thread_local to ensure
thread safety of functions
Add some const qualifiers:
Making more member functions const to clarify where state is hidden
Version with thread locals:
Independent decay tables, and hence sym tables
This should be mostly complete in EvtGenBase at least
Add explicit mutexing to externals:
Tauola and Photos libraries are not thread safe so must be called by
only one thread
ExternalGenFactory is shared by all threads and its internals can be
modified by only one thread at a time, so this is also mutexed