move already reported logic into macros

Some OS (mainly OSX) implement exec calls to loop over PATH variable and
call execve. To not report all of these calls bear were check if the call
was already reported. This logic went into macro and has simplier implementation
for OSes which does not suffer this problem. (It might fix performance issue
because vfork is no longer overwritten.)
fix pedantic warning about function pointer cast
add extra warnings to travis-ci build