Properly handle setting cacheIdentifier when there are multiple Run,Lumi,Event

We now use a std::atomic static to uniquely give cacheIdentifiers to all Runs, Lumis and Events in a job.