Serialize calls to EventSetup modules

For now, we use a global recursive mutex to guard access to all EventSetup modules and sources. Using one mutex allows us to deal with the case where modules/sources are sharing the same non-thread safe resource. 
Reading cached values from the EventSetup does not require a lock and is instead made thread safe via the use of std::atomics.