kmod/core: remove assembler code

Long ago, the kpatch_trampoline required being written in assembler, but
that's no longer needed now that it integrates nicely with ftrace.

Move it to a C function and rename it kpatch_ftrace_handler.
kmod/core: update module comments
kmod/core: remove ftrace hacks

These hacks were from a previous implementation and are no longer
needed.
kmod/core: remove comments about preemption

Preemption shouldn't cause a problem with determining activeness safety.
Even if a thread is preempted, it'll be on the backtrace.

We may need to disable preemption when reading the kpatch_funcs array,
but I'm removing that comment for now because the kpatch_funcs array
will soon be replaced by a much better data structure, and we'll deal
with proper synchronization then.
kmod/core: remove sync_core comment

No need to call sync_core() since we aren't directly modifying any code.
kmod/core: handle kmalloc errors and fix leak
kmod/core: remove unused old_func_addr field

Not needed, we can always add it again later if needed (for sanity
checks, maybe)
kmod/core: print module load/unload messages

Print the loading/unloading messages after they have successfully
completed.  Using the KERN_NOTICE log level which corresponds to a
"normal but significant condition."
kmod/core: remove obsolete kpatch_rela struct
kmod/core: move kpatch_remove_patch

Just move kpatch_remove_patch to a more logical location next to
kpatch_apply_patch.  No functional changes.