make __func__ a special static local

The __func__ static local variable should be deemed "special", because
it doesn't need to be correlated and should be included when needed by
an include function.

I don't have a test case for F20, but this fixes the following types of
issues when doing a full-tree recompile on RHEL 7:

    ERROR: cifssmb.o: object size mismatch: __func__.49322
    ERROR: btmrvl_main.o: kpatch_correlate_static_local_variables: 982: static local variable __func__.44657 not used
    ERROR: iwch_qp.o: .rodata.__func__.46024 section header details differ
allow static locals to be used by two functions

Allow static locals to be used by two functions.  This is possible if
the static's containing function is inlined.  We only need to find one
of them to do the correlation.
kpatch-gcc: for module patches, copy module to temp dir

For patches involving modules, copy the original module(s) to
TEMPDIR so that create-diff-object can create the correct lookup
tables
Merge pull request #446 from flaming-toast/issue430

Fix #430 by copying original modules to TEMPDIR
Merge pull request #443 from jpoimboe/func-special-static

static local fixes
fix integration test patch conflict
Merge pull request #447 from jpoimboe/integration-test-fix

fix integration test patch conflict
Merge pull request #440 from jpoimboe/unlink-error-handling

fix object unlink error handling
test: make sure TMP.patch is cleaned up
Merge pull request #449 from jpoimboe/test-cleanup-fix

test: make sure TMP.patch is cleaned up
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.