Try versioned dlopen() in libswmhack.

On Linux (at least Debian and Fedora) .so files are part of the
development package for a library, as opposed to the runtime package.

This patch adds a second attempt at dlopen() with the major version
number added if the first one fails, so that installing the development
packages is not necessary for the hack to work.

It also prints an explicatory error message and abort()s in case
dlopen() fails instead of segfaulting without apparent reason.