compiler_ffi: ifndef does not protect multiple definition of symbols

`#ifndef` trick can work on the compiler, but not on the linker.

Do not use buggy pragma to protect multiple definition
compiler_ffi: factorize code in compile_extern_helper_functions

Signed-off-by: Jean Privat <jean@pryen.org>
Merge: Fix ffi null service

With nitg-g, the linker could fail when the same two piece of code will be in distinct files,
since the #ifndef trick does not cross compilation units.

This merge is just a workaroud where we use a global flag to avoid multiple definition.
While it works (thus is an improvement) it is ugly and broke the separate compilation concerns.

Pull-Request: #368
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>