generic support for special sections

Rewrite the special section processing code so that it's more generic and (hopefully) easy to add support for more special sections.

Also adds support for the fixup table (and related sections) and tracepoints (and related sections).

Also adds proper support for functions which use percpu variables.