Change LoadNativeLibrary to use GetOrCreateAllocator

Previously we used GetAllocatorForClassLoader. This did not
handle the case where someone called LoadLibrary without having
already loaded a class.

Added regression test.

Bug: 25866849

Change-Id: Id720505eaded3b0f9c2eab59a40611b328837c4a
diff --git a/runtime/java_vm_ext.cc b/runtime/java_vm_ext.cc
index 7cc05f7..58da7f2 100644
--- a/runtime/java_vm_ext.cc
+++ b/runtime/java_vm_ext.cc
@@ -736,7 +736,7 @@
     // it's okay to decode it without worrying about unexpectedly marking it alive.
     mirror::ClassLoader* loader = soa.Decode<mirror::ClassLoader*>(class_loader);
     class_loader_allocator =
-        Runtime::Current()->GetClassLinker()->GetAllocatorForClassLoader(loader);
+        Runtime::Current()->GetClassLinker()->GetOrCreateAllocatorForClassLoader(loader);
     CHECK(class_loader_allocator != nullptr);
   }
   if (library != nullptr) {