Doing the "linking" explicitly using `dlopen` and `dlsym` has the advantage that 1. The rustc flags on macOS become unnecessary 2. We can add an additional `main` to list the NIFs without having to fake the symbols (as done in #614) 3. Startup and calling would work the same way on all OSes, allowing us to ditch the build script (and thus speeding up the build)