Make the necessary changes to allow the safe use in a multi-threaded environment
- Protect statics: make them const or thread\_local
- Improve const-correctness of many functions
- Make thread\_local the RNG, particle property table, external factory, decay tables, and sym tables
- Add explicit mutexing to non-thread-safe externals (Sherpa, Tauola, Photos)
- Propagate the EvtGen seed to the Fortran RNG in Tauola
- Some fixes to EvtBtoXsEtap and EvtBtoXsgamma
- Reorganise test code for multi-threading