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 racepoints (and related sections).

Also adds proper support for changing functions which use percpu variables.