wrap dlsym in a D function to avoid libdl dependency in client code