Change sticky GC ergonomics to use GC throughput.

The old sticky ergonomics used partial/full GC when the bytes until
the footprint limit was < min free. This was suboptimal. The new
sticky GC ergonomics do partial/full GC when the throughput
of the current sticky GC iteration is <= mean throughput of the
partial/full GC.

Total GC time on FormulaEvaluationActions.EvaluateAndApplyChanges.
Before: 26.4s
After: 24.8s
No benchmark score change measured.

Bug: 8788501

Change-Id: I90000305e93fd492a8ef5a06ec9620d830eaf90d
diff --git a/runtime/verify_object-inl.h b/runtime/verify_object-inl.h
index e211c83..39df375 100644
--- a/runtime/verify_object-inl.h
+++ b/runtime/verify_object-inl.h
@@ -36,9 +36,8 @@
       bool failed = !IsAligned<kObjectAlignment>(obj);
       if (!failed) {
         mirror::Class* c = obj->GetClass<kVerifyNone>();
-        failed = failed || c == nullptr;
-        failed = failed ||!IsAligned<kObjectAlignment>(c);
-        failed = failed ||!VerifyClassClass(c);
+        failed = failed || !IsAligned<kObjectAlignment>(c);
+        failed = failed || !VerifyClassClass(c);
       }
       if (UNLIKELY(failed)) {
         Runtime::Current()->GetHeap()->VerifyObjectBody(obj);