OpenJDK 11: Merging in java.lang.Integer (parseUnsignedInt())

This is part of merging upstream changes from OpenJDK 11.28. This CL
adds new API parseUnsignedInt(CharSequence, int, int, int); and adds
corresponding unit tests.

This also adds another new API for java.lang.Long:
parseLong(CharSequence, int, int, int).

Also added unit tests for both APIs (and more missing tests).

Bug: 207841289
Test: atest CtsLibcoreOjTestCases:test.java.lang.\
            {Long.{ParsingTest,Unsigned},Integer.Unsigned}
Change-Id: I506a305cf56c09852342e64d75cac99d21c19159
diff --git a/api/current.txt b/api/current.txt
index b14b4a2..c0b0006 100755
--- a/api/current.txt
+++ b/api/current.txt
@@ -3203,6 +3203,7 @@
     method public static int parseInt(@NonNull CharSequence, int, int, int) throws java.lang.NumberFormatException;
     method public static int parseInt(@NonNull String) throws java.lang.NumberFormatException;
     method public static int parseUnsignedInt(@NonNull String, int) throws java.lang.NumberFormatException;
+    method public static int parseUnsignedInt(@NonNull CharSequence, int, int, int) throws java.lang.NumberFormatException;
     method public static int parseUnsignedInt(@NonNull String) throws java.lang.NumberFormatException;
     method public static int remainderUnsigned(int, int);
     method public static int reverse(int);
@@ -3277,6 +3278,7 @@
     method public static int numberOfLeadingZeros(long);
     method public static int numberOfTrailingZeros(long);
     method public static long parseLong(@NonNull String, int) throws java.lang.NumberFormatException;
+    method public static long parseLong(@NonNull CharSequence, int, int, int) throws java.lang.NumberFormatException;
     method public static long parseLong(@NonNull String) throws java.lang.NumberFormatException;
     method public static long parseUnsignedLong(@NonNull String, int) throws java.lang.NumberFormatException;
     method public static long parseUnsignedLong(@NonNull String) throws java.lang.NumberFormatException;