dl_loader: add static assertion to prevent mysterious behaivors

 Casting pointer-to-object to pointer-to-function (and vice versa) is
not a portable way on ISO C++ (warned by gcc -pedantic-errors)
 But we cannot avoid it because we use dlsym() to load functions from
dynamic modules (despite dlsym() is a part of POSIX).
 So now let's show the error message if
sizeof(void *) == sizeof(void (*)() is not guaranteed.

See also:
 http://stackoverflow.com/questions/14543801/iso-c-forbids-casting-between-pointer-to-function-and-pointer-to-object
 http://agram66.blogspot.jp/2011/10/dlsym-posix-c-gimme-break.html
 http://stackoverflow.com/questions/3941793/what-is-guaranteed-about-the-size-of-a-function-pointer/3941867#3941867