use a struct with metadata for external function calls

this speeds up function calls. cpu usage is now 17%, before 50%.
since ags uses the same mechanism for data and functions,
(and the relocated data cannot be differentiated from regular data)
we need to inspect /proc/pid/maps whenever a symbol is added to
find out if its data or a function.

this functionality lives in https://github.com/rofl0r/debuglib