Cherry-pick: ICU-20520, ICU-20570, ICU-20595, ICU-20588 UMutex refactoring

Thic CL cherry picks four commits from upstream that refactor UMutex and
introduce thread-safety improvements:

1. ICU-20520 UMutex refactoring

  - Use STATIC_NEW for mutex creation, to avoid order-of-destruction problems
    by avoiding destruction altogether, while avoiding memory leak reports.

  - Remove UConditionVar, replace with direct use of std::condition_variable

  https://github.com/unicode-org/icu/commit/b772241b52fcec07b1909d44d156fbcd0cbfb20c

2 .ICU-20570 UInitOnce instances, add explicit initialization where it was missing.

  https://github.com/unicode-org/icu/commit/a97cfb01b917125fdb9705cf79786188cebb6e2e

3. ICU-20595 Make icu::TimeZone::AdoptDefault thread safe

  correct the mutex
  Remove comments about not thread safe

  https://github.com/unicode-org/icu/commit/cb40d8b1a5eb6dd01e3972db5e1a05b672202f80

4. ICU-20588 UMutex, add cleanup of underlying mutexes, and simplify usage model

  https://github.com/unicode-org/icu/commit/afa9b9b48e0a50f2298e5d47c101ac3325629d8c

Bug: 125283072
Test: ./art/test.py --host -b -r -t 1944-sudden-exit
Test: CtsIcuTestCases
Change-Id: Ic3dc6010c7f53c04fa347bd92a2651bfbec8cb1e
58 files changed