Fix incorrect hardcoded requirement for libdl

Not all platforms, for example FreeBSD, require linking against libdl.
Cmake provides the variable CMAKE_DL_LIBS which should contain
platform-appropriate libraries. This patch replaces the use of 'dl'
with this variable, and updates the documentation to reflect the actual
requirements for compilation on FreeBSD.