Make 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.