if dlopen fails, the next plugin will also fail.
The call to dlopen fails to give a handle then the next time _get_plugin is
called it will fail.
This is because dlerror() is never called after the failing dlopen().
Insted the error messag is returned in the test for the first symbol in the next
plugin.
dt->functions->test = dlsym(dt->handle, "ao_plugin_test");
if (dlerror()) { free(dt->functions); free(dt); return NULL; }