OpenJDK 11: Merging in java.lang.ref.Cleaner

This is part of merging upstream changes from OpenJDK 11.28. It adds
Cleaner class from java.lang.ref; and its dependencies (listed below):

 * java/lang/ref/Cleaner.java
 * jdk/internal/misc/InnocuousThread.java
 * jdk/internal/ref/Cleaner.java
 * jdk/internal/ref/CleanerFactory.java
 * jdk/internal/ref/CleanerImpl.java
 * jdk/internal/ref/PhantomCleanable.java

Also add upstream tests for java.lang.ref.* (listed below):

 * BasicTest.java
 * CleanerTest.java
 * EnqueueNullRefTest.java
 * EnqueuePollRaceTest.java
 * ReferenceCloneTest.java
 * ReferenceEnqueuePendingTest.java
 * SoftReference/BashTest.java
 * SoftReference/PinTest.java

Bug: 198792576
Test: m droid core-ojtests
Test: atest CtsLibcoreOjTestCases:test.java.lang.ref.{BasicTest,\
            CleanerTest,EnqueueNullRefTest,EnqueuePollRaceTest,\
	    ReferenceCloneTest,ReferenceEnqueuePendingTest,\
	    SoftReference.BashTest}

Change-Id: I7a4e952dbe539c05c61ad7e20a30efe871c4f097
16 files changed