Fix assertThat(Double.NaN).isNaN() in GWT/j2cl.

In Java there is a difference between:
  Double.NaN == Double.NaN ==> False
and:
  new Double(NaN).equals(Double.NaN) ==> true

For performance reasons double is devirtualized in GWT/j2cl and thus making that difference is much much harder. Eventually this will be resolved with b/36792681, but right now truth does not work.

This changes truths implementation do testing directly for NaN instead of relying on Object.equals for isNaN.
Probably truth should run its tests in GWT/J2CL to catch such errors.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=156361108
diff --git a/core/src/main/java/com/google/common/truth/DoubleSubject.java b/core/src/main/java/com/google/common/truth/DoubleSubject.java
index 2d7933a..a293869 100644
--- a/core/src/main/java/com/google/common/truth/DoubleSubject.java
+++ b/core/src/main/java/com/google/common/truth/DoubleSubject.java
@@ -237,7 +237,9 @@
 
   /** Asserts that the subject is {@link Double#NaN}. */
   public final void isNaN() {
-    isEqualTo(Double.NaN);
+    if (actual() == null || !actual().isNaN()) {
+      fail("is NaN");
+    }
   }
 
   /**
diff --git a/core/src/test/java/com/google/common/truth/DoubleSubjectTest.java b/core/src/test/java/com/google/common/truth/DoubleSubjectTest.java
index 58479d1..4f9e2ee 100644
--- a/core/src/test/java/com/google/common/truth/DoubleSubjectTest.java
+++ b/core/src/test/java/com/google/common/truth/DoubleSubjectTest.java
@@ -477,7 +477,7 @@
     } catch (AssertionError assertionError) {
       assertThat(assertionError)
           .hasMessageThat()
-          .isEqualTo("Not true that testValue (<" + value + ">) is equal to <" + Double.NaN + ">");
+          .isEqualTo("Not true that testValue (<" + value + ">) is NaN");
       return;
     }
     fail("Expected AssertionError to be thrown but wasn't");