Add remembered set functionality for native roots

Fixes GSS tests. The issue was that there could be classes which had
native roots in the target space which we need to mark and update.

Change-Id: I33e628d40bcb74f768492f740f8f084077d80edf
diff --git a/runtime/gc/accounting/remembered_set.cc b/runtime/gc/accounting/remembered_set.cc
index 251b50d..70704c1 100644
--- a/runtime/gc/accounting/remembered_set.cc
+++ b/runtime/gc/accounting/remembered_set.cc
@@ -95,7 +95,11 @@
 
   void VisitRoot(mirror::CompressedReference<mirror::Object>* root) const
       SHARED_REQUIRES(Locks::mutator_lock_) {
-    DCHECK(!target_space_->HasAddress(root->AsMirrorPtr()));
+    if (target_space_->HasAddress(root->AsMirrorPtr())) {
+      *contains_reference_to_target_space_ = true;
+      root->Assign(collector_->MarkObject(root->AsMirrorPtr()));
+      DCHECK(!target_space_->HasAddress(root->AsMirrorPtr()));
+    }
   }
 
  private: