improve static local variable correlation

Improve the static local variable correlation logic, for the case where
a static local is used by multiple functions.  For each usage of the
variable, look for a corresponding usage in the base object.  If we find
at least one matching usage, consider it a twin.
small replace_sections_syms refactor

Move this code block to a more logical place, outside of the symbol
loop.
fix error path typo
section reference replacement for references inside symbols

Currently unbundled section references are only replaced if the start of
the symbol is referenced.  It's also useful to support replacement of
references which point to inside the symbol.
fix review comment
allow patched modules to call external functions

When patching a kernel module, if we can't find a needed dynrela symbol,
we currently assume it's exported.  However, it's also possible that
it's provided by another .o in the patch module.  Add support for that.

Fixes #445.
Merge pull request #450 from jpoimboe/unlink-err-fix

fix error path typo
Merge pull request #448 from jpoimboe/static-local-fixes

improve static local variable correlation
Merge pull request #451 from jpoimboe/sections-syms-fix

 section reference replacement for references inside symbols
Merge pull request #452 from jpoimboe/module-call-external

allow patched modules to call external functions
refactor rela_equal

Make it easier to read and reduce the indent levels
use kpatch_mangled_strcmp in rela_equal

Use kpatch_mangled_strcmp() to compare the prefixes of special static
locals.
change special_static_prefix to is_special_static

We no longer need to return the prefix, so change it to a boolean
function.
refactor is_special_static

Make is_special_static()'s implementation more generic to make it easier
to add special static variables in the future
make _rs a special static local

The _rs variable is used for printk ratelimiting, similar to __warned,
which makes it a logical candidate to be "special": don't correlate it,
yet don't mark a function as changed just because it references it.