macros: add KPATCH_PRINTK macro

Use this instead of calling printk to avoid unwanted compiler
optimizations which cause kpatch-build errors.

The printk function is annotated with the __cold attribute, which tells
gcc that the function is unlikely to be called.  A side effect of this
is that code paths containing calls to printk might also be marked cold,
leading to other functions called in those code paths getting moved into
.text.unlikely or being uninlined.

This macro places printk in its own code path so as not to make the
surrounding code path cold.

I have a related integration test to add, but right now it's broken
because we don't yet properly support the __verbose special section.
That'll be another PR.

Fixes #296.
replace section symbols for references to __verbose

Fixes the following error:

    kpatch_correlate_static_local_variables: 830: static local variable descriptor.49967 not used
compare static prefixes, don't correlate __verbose symbols

Fixes the following error:

    kpatch_correlate_static_local_variables: 865: expected bundled section for descriptor.49967
detect .rodata.* bundled sections

Fixes the following error:

    kpatch_correlate_static_local_variables: 830: static local variable __func__.49968 not used
compare __func__ references by value

Fixes the following error:

    kpatch_correlate_static_local_variables: 850: found another static local variable matching __func__.49968 in patched .rela__verbose
don't replace section references with symbols for debug sections

Fixes a seg fault in kpatch_create_dynamic_rela_sections when processing
the relas for the .debug_info section, when it tries to reference an
unincluded symbol from the __verbose section.
add KPATCH_PRINTK test