Deprecate U_USER_ATOMICS_H, U_USER_MUTEX_H, U_USER_MUTEX_CPP
These, when defined, pull user-specified files into the build, overriding ICU's built-in definitions for atomics and mutexes.
The need for platform-specific overriding of atomics should be disappearing, as compiler support for std::atomic improves.
The platform/user mutexes were intended to allow overriding both the declaration and implementation of ICU's internal mutex wrapper classes. But exactly what needed to be provided with any such override implementation was never clearly described, and the set of functions needed has grown over time. Based on the lack of any comments when incompatible changes were made (the addition of condition variables, for example), my guess is that no one is using these overrides.
I propose deprecating them. A similar result could still be obtained by patching the ICU sources as part of a customized build process.