Also check ftrace_enabled symbol before proceeding

If kpatch is inserted while ftrace is turned off, nothing it does
will work, and there will be no errors reported to the user. If
ftrace gets turned off while kpatch is loaded, anything that gets
loaded while ftrace is off will also have no effect. This patch
aims to prevent kpatch or any of its modules from going in when we
know that it won't work.

We could hook the systl .proc_handler "ftrace_enable_sysctl" so
it can't be turned off while kpatch is loaded, but there's no real
reason to do that as anything that's currently loaded will start
to work correctly again after it gets turned back on. And if things
are unloaded while ftrace is turned off, things appear to
unregister correctly.

Since "ftrace_enabled" is defined in ftrace.h we can't re-use the
name here, so append _ptr to it, and rename ftrace_disabled with
the _ptr appended as well to stay consistent. This patch also moves
the initialization code for these pointers up a bit in kpatch_init
so they error out properly, and not cause kpatch_exit to throw an
error.