Make caching in HcalDDDGeometry thread-safe

Made caching of values internal to HcalDDDGeometry thread-safe.
Given that the caching is done only once and kept for a long time
and only one HcalDDDGeometry tends to be used at a time a std::mutex
was used to synchronize the filling of the cache. This minimized
the amount of code that had to be changed.
Merge pull request #4167 from Dr15Jones/makeHcalDDDGeometryThreadSafe

Make HcalDDDGeometry thread-safe