no-glib: Rule out g_build_filename.

There may still be some g_free/free mismatches, you're warned.
no-glib: Rule out g_strdup, g_strndup, g_new, g_malloc.
update: Correctly deal with NULL path
no-glib: Rule out several G_GNUC macros.
no-glib: Delete G_GNUC_CONST
no-glib: Clear G_GNUC_UNUSED
headers: Retire gcc.h.

1) I don't use funny version checks and #pragmas to workaround false
postive gcc warning. I just ignore them.

2) I don't use gcc_nonnull. You gonna have null guard in your code any
way.

3) Why is there a gcc_packed? I deleted it. May cause ABI breakage
though.