Use libtool -version-number rather than -release

Using the -release flag results in having to recompile downstream
libraries that use pion. This patch allows the libtool to create
symlinked libraries than can be correctly used in a normal
workflow. The version info is derived from the semantic package
numbering system. It allows for the minor version to reach 99 before
there will be an error.
Correctly cast function pointer

Doing a naive C cast on a function pointer is an error in most compilers.
Using the old POSIX method is compatible with almost all compilers at the
highest warning levels.