Add NDK APIs needed by skia

Add the following API groups from ICU4C into NDK.
- ubidi
- ubrk
- uenum
- uldn
- unorm2
- uscript
- utext

The list of newly added APIs can be found in libicu.map.txt
or libicu_export.txt in the CL. libicu_export.txt also lists
why some functions in the API groups are not exposed in NDK now.

Verified that, except utext and uenum, the APIs has an equivalent
public API exposed from ICU4J in android.icu package.
utext and uenum are kinds of iterators used by the other APIs.
The mutation APIs in utext are not exposed now until a clear use
cases, e.g. reduced memory usage, is found.

The original utext.h supports allocating a UText object from stack, but
it's explicitly disabled by hiding the definition of UText struct
from the utext.h to avoid ABI compat issue in the future.

Bug: 160350521
Bug: 174051744
Test: `m droid` with building skia on top of libicu
Test: atest CtsIcu4cTestCases
Change-Id: I924958061fdf48e4b4b669506c6524d1cf7986c1
14 files changed