Always pass -export-dynamic as a direct linker argument

GCC accepts the -export-dynamic argument, and will make decisions
about whether to include it in the linker options. On OSX it does
not include it in the linker options.

clang ignores -export-dynamic even when linking, and newer versions
when passed -rdynamic, will always pass -export-dynamic in the
linker options, which causes linking to fail on OSX.

The solution seems to be to pass -export-dynamic directly to the
linker for LINUX/FreeBSD/NetBSD i.e. -Wl,-export-dynamic.