dynasm-driver: fix possible pointer size issues

Apparently, on some machines it's possible for function pointers and data
pointers to be a different size. Clang warns about that. This rectifies the
problem a little bit.

Reference:
http://stackoverflow.com/questions/13696918/c-cast-void-pointer-to-function-pointer
build: enable warnings

Sadly DynASM triggers quite a few, so I've had to add a few "-Wno-...", also
casting between void* -> void (*)(void) -> float (*)(float) appears to be
very difficult if not impossible to do without triggering a few warnings,
which had to be disabled as well (-Wno-incompatible-pointer-types).