Ensure loaded plugins are not copied.

If a loaded plugin was copied we would try to initialize it a second
time. This would happen if you were running on a libartd.so because
the compiler would not select the move constructor since it wasn't
marked as noexcept.

Bug: 74125483
Test: Run dexmaker tests on a libartd runtime.
Change-Id: If86e4d3ed8fc68fce7295fb3779cb46499f9c72c
diff --git a/runtime/plugin.cc b/runtime/plugin.cc
index 7d86f1d..6f1c517 100644
--- a/runtime/plugin.cc
+++ b/runtime/plugin.cc
@@ -28,10 +28,7 @@
 const char* PLUGIN_DEINITIALIZATION_FUNCTION_NAME = "ArtPlugin_Deinitialize";
 
 Plugin::Plugin(const Plugin& other) : library_(other.library_), dlopen_handle_(nullptr) {
-  if (other.IsLoaded()) {
-    std::string err;
-    Load(&err);
-  }
+  CHECK(!other.IsLoaded()) << "Should not copy loaded plugins.";
 }
 
 bool Plugin::Load(/*out*/std::string* error_msg) {