Don't include subhook in static library
Update subhook to v0.1
Replace tabs with spaces in last file
Introduce API to intercept public function calls (issue #55)

Make it possible to set a "public hook" that is called whenever some public
AMX function gets called against the gamemode (FSs are ignored).

The hook function takes two parameters - a pointer to the gamemode's AMX
struct, and the name of the public function that is being called. It should
return true if the function is allowed to execute and false if not.
Use FOR_EACH_FUNC to declare hook variables as well
Use a static buffer for current public name

It could be a total disaster if this one malloc() call in amx_FindPublic_()
suddenly failed. Besides we don't even need dynamic memory here as public
names are limited to 32 character by the compiler.
Explicitly link helloworld with subhook in static build
Fix project name in group_target_sources() call
Fix safe_strcpy() not terminating string
Minor cleanup
Rewrite hook_native() using standard AMX API
Move MAX_PUBLIC_NAME to limits.h
Move safe_strcpy() to utils
Remove redundant #include
Exclude src/ from include path
Fix natives not fully exported on Linux

The .api files generated at build time were not added to dependencies
of the command running symgen, and might be not available at the time
the script was run. The symbols were still exported though (though the
dynamic symbol table), that's why there were no link errors building
helloworld, but they were not part of nm output (which lists entries of
the "normal" symbol table unless run with -D flag)
Add -fvisibility=hidden to GCC flags on Linux
Revert "Exclude src/ from include path"

This reverts commit bd3a92be4856c6c7dcdcf3a1b22d20ec95919037.
Rename limits.h to constants.h

This didn't work with MSVC as it tried to include the standard limits.h
in one if its headers.
Prevent multiple calls to public hooks

Only call the hook for the main AMX, filterscripts and anything else
should be ignored.