add KPATCH_IGNORE_SECTION support (plus fixups)

Add  KPATCH_IGNORE_SECTION() macro, which ignores sections that may change as a side effect of another change or might be a non-bundlable section; that is one that does not honor -ffunction-section and create a one-to-one relation from function symbol to section.

Fixes #265

Test patch:
```
diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c
index e0501fe..955ee0d 100644
--- a/kernel/hrtimer.c
+++ b/kernel/hrtimer.c
@@ -1545,7 +1545,7 @@ void hrtimer_init_sleeper(struct hrtimer_sleeper *sl, struct task_struct *task)
 }
 EXPORT_SYMBOL_GPL(hrtimer_init_sleeper);
 
-static int __sched do_nanosleep(struct hrtimer_sleeper *t, enum hrtimer_mode mode)
+static int do_nanosleep(struct hrtimer_sleeper *t, enum hrtimer_mode mode)
 {
 	hrtimer_init_sleeper(t, current);
 
@@ -1564,9 +1564,14 @@ static int __sched do_nanosleep(struct hrtimer_sleeper *t, enum hrtimer_mode mod
 	} while (t->task && !signal_pending(current));
 
 	__set_current_state(TASK_RUNNING);
+	if (jiffies == 0)
+		printk("what?\n");
 
 	return t->task == NULL;
 }
+#include "kpatch-macros.h"
+KPATCH_IGNORE_SECTION(".sched.text");
+KPATCH_FORCE_UNSAFE(do_nanosleep);
 
 static int update_rmtp(struct hrtimer *timer, struct timespec __user *rmtp)
 {
```

Expected Output:
```
Testing patch file
checking file kernel/hrtimer.c
Building original kernel
Building patched kernel
Detecting changed objects
Rebuilding original objects
Extracting new and modified ELF sections
hrtimer.o: NOTICE: symbol do_nanosleep has changed sections
hrtimer.o: ignoring section .sched.text
hrtimer.o: changed function: do_nanosleep
hrtimer.o: function 'do_nanosleep' marked with KPATCH_FORCE_UNSAFE!
Patched objects: vmlinux
Building patch module: kpatch-patch.ko
SUCCESS
```
If I'm reading this code right, I think this is trying to accomplish the same thing as the code below it (except the below code is currently only targeted for a few data sections).  I think it's buggy because you can't always assume that the addend offset will be 4.  Its value is determined by the length of the instruction pointed to by the rela.

Instead maybe we can change the below code such that it runs on all non-bundled sections?