Add a static library to share ICU init code

Add a static library (androidicuinit) to enable sharing of ICU4C
initialization code. Switch AIcu.cpp over to using it. This means
that libcore and various command line utils now initialize ICU4C
in the same way.

This means for binaries that use AIcu_initializeIcuOrDie():
1) They previously didn't use time zone data overlay files from
/data and/or the time zone data mainline module but they now do.
2) ICU4C is initialized in a different way than before: rather than
finding the files from a given path, the files are mapped into
memory and the memory locations are explicitly given to ICU4C.

Testing:
To check for the expected memory mapping:
$ pmap <pid> | grep '.dat'
with zygote and mediaserver process pids.

Tested sqlite3 after executing in adb shell as above (but a sql
operation like "CREATE TABLE" has to be attempted before ICU
is initialized).

Also inspected logcat output for the expected log messages.

Bug: 120493361
Test: build / boot
Test: atest CtsLibcoreTestCases
Test: See above
Change-Id: I7c102ddafaa36e1ff81f1dfbce4f779553ba71a1
diff --git a/README.android b/README.android
index 33205c6..5b15c78 100644
--- a/README.android
+++ b/README.android
@@ -3,18 +3,30 @@
 Directories
 ===========
 
-icu4c/          - ICU4C with Google and Android-specific patches applied.
+ICU4J
+-----
 
-icu4j/          - ICU4J with Google and Android-specific patches applied.
-                  After patching this make sure to run the following to update
-                  the repackaged version used in Android and CTS tests.
-                      tools/srcgen/generate_android_icu4j.sh
+icu4j/             - ICU4J with Google and Android-specific patches applied.
+                     After patching this make sure to run the following to update
+                     the repackaged version used in Android and CTS tests.
+                       tools/srcgen/generate_android_icu4j.sh
 
-android_icu4j/  - This is the copy of ICU4J used in the Android platform.
-                  IMPORTANT NOTE: Do not make changes to this code directly,
-                  except where noted in android_icu4j/README.android. See
-                  tools/README.android for how to generate it.
+android_icu4j/     - This is the copy of ICU4J used in the Android platform.
+                     IMPORTANT NOTE: Do not make changes to this code directly,
+                     except where noted in android_icu4j/README.android. See
+                     tools/README.android for how to generate it.
 
-android_utils/  - ICU4C runtime initialization / Android integration code.
+ICU4C
+-----
 
-tools/          - Code / data maintenance tools. See tools/README.android.
+icu4c/             - ICU4C with Google and Android-specific patches applied.
+
+android_icu4c/     - Configuration code used when building ICU4C on Android.
+
+libandroidicu/     - The subset of ICU4C exposed to framework code and other
+                     components outside of the mainline module that contains ICU.
+
+libandroidicuinit/ - A static library for ICU4C initialization. Used by
+                     libandroidicu and libjavacore to initialize ICU4C.
+
+tools/             - Code / data maintenance tools. See tools/README.android.